RMD*_*RMD 4 model-binding asp.net-mvc-4
我有一个非常简单的ASP.NET MVC4页面.它正在呈现CustomerModel的编辑表单.表单正确显示,但是当我点击编辑并回发时,模型没有被绑定.相反,CustomerModel的所有属性都保留其默认值.需要注意的是正确的控制器方法是被调用,所以这不是问题.
我可以看到表单值与模型属性(Id,Name,Description)匹配的名称,但模型没有设置它们.
想法?
这是模型:
public class CustomerModel
{
[Required]
public Guid Id;
[Required]
public string Name;
[Required]
public string Description;
}
Run Code Online (Sandbox Code Playgroud)
这是相关的控制器方法:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(CustomerModel customerModel)
{
if (ModelState.IsValid)
{
//...Do stuff
return RedirectToAction("Index");
}
return View(customerModel);
}
Run Code Online (Sandbox Code Playgroud)
最后,这是一个带有填充值的表单集合的屏幕截图:

Fil*_*p W 11
您的模型有公共字段但不包含公共属性,这些不一样.
改成:
public class CustomerModel
{
[Required]
public Guid Id {get; set;}
[Required]
public string Name {get; set;}
[Required]
public string Description {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
默认的MVC模型绑定器将使用属性,而不是字段.
更多相关信息 - http://rightbrainleft.net/2011/02/default-mvc-model-binder-doesnt-like-fields/
| 归档时间: |
|
| 查看次数: |
2132 次 |
| 最近记录: |