ckv*_*ckv 4 asp.net asp.net-mvc web-applications asp.net-mvc-3
在Web表单中,使用视图状态.但是在ASP.NET MVC中,由于模型绑定可用,因此可以在控制器中轻松地访问属性.但是,当模型验证失败时,ASP.NET MVC会自动填充表单控件,以实现验证失败吗?
或者还有其他方法可以实现这一目标.
有一个名为ModelState(在Controller类中)的属性,它包含所有值.它用于模型绑定.验证失败时,ModelState保留所有带有验证错误的值.
ModelState.IsValid 告诉你,验证没有抛出任何错误.
ModelState.Values 保留所有的值和错误.
编辑
Ufuk的例子:
查看型号:
public class EmployeeVM
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
操作:
[HttpGet]
public ActionResult CreateEmployee()
{
return View();
}
[HttpPost]
public ActionResult CreateEmployee(EmployeeVM model)
{
model.FirstName = "AAAAAA";
model.LastName = "BBBBBB";
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
视图:
@model MvcApplication1.Models.EmployeeVM
@using (Html.BeginForm("CreateEmployee", "Home")) {
@Html.EditorFor(m => m)
<input type="submit" value="Save"/>
}
Run Code Online (Sandbox Code Playgroud)
如您所见,在POST方法中,值被AAAAA和BBBBB覆盖,但在POST后,表单仍显示已发布的值.他们取自ModelState.
| 归档时间: |
|
| 查看次数: |
2447 次 |
| 最近记录: |