快速了解MVC 3,
查看传递数据的[HttpPost] ActionResult方法有问题,具体取决于我是否在视图中使用EditorFor()或TextBoxFor().
我的编辑视图中有一些字段,我想要只读,所以我使用过:
<div class="editor-field">
@Html.EditorFor(model => model.ModelNumber)
@*Html.TextBoxFor(model => model.ModelNumber, new { disabled = "disabled", @readonly = "readonly" })*@
@*Html.ValidationMessageFor(model => model.ModelNumber)*@
</div>
Run Code Online (Sandbox Code Playgroud)
这是ActionResult控制器方法:
public ActionResult Edit(int id)
{
var NPSProc = db.NPSProcesseds.SingleOrDefault(p => p.Id == id);
return View(NPSProc);
}
[HttpPost]
public ActionResult Edit(NPSProcessed Processed)
{
try
{
if (ModelState.IsValid)
{
db.Entry(Processed).State = EntityState.Modified;
db.SaveChanges();
return new RedirectResult("~/Home", false);
}
else
{
return View("Edit", Processed);
}
}
catch (DbEntityValidationException dbEx)
{
foreach (var validationErrors in dbEx.EntityValidationErrors)
{
foreach (var validationError in validationErrors.ValidationErrors)
{
Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
}
}
return View("Edit", Processed);
}
Run Code Online (Sandbox Code Playgroud)
当我删除EditorFor()方法的注释时,ModelNumber字段在传递给HttpPost ActionResult方法的Processed对象中包含一个值ModelNumber.
如果我注释EditorFor()方法并删除TextBoxFor()方法的注释,则MethodNumber字段包含null.
似乎EditorFor()方法正在执行TextBoxFor()方法没有做的一些额外工作.
有人能指出我正确的方向,并指出我正在犯的错误.
谢谢
乔
| 归档时间: |
|
| 查看次数: |
1245 次 |
| 最近记录: |