我有一个简单的 MVC 模型,如下所示:
public class SomeClass
{
public int Id { get; set; }
[Required(ErrorMessage = "Please provide a name for the blah blah blah")]
public string Name { get; set; }
}
...我有这样的看法(简化):
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<CompanyName.Web.Models.SomeClassViewModel>" %>
<form method="post" action="/someclass/add">
<%=Html.HiddenFor(m => m.SomeClass.Id)%>
<div>
<%=Html.LabelFor(m => m.SomeClass.Name)%>
<%=Html.TextBoxFor(m => m.SomeClass.Name, new { @class = "form-medium" })%>
</div>
</form>
在提交表单时,我的控制器会验证ModelState
类似的内容:
[HttpPost]
public ActionResult Add(Models.SomeClassViewModel model)
{
if (ModelState.IsValid)
{
...
}
}
我得到一个模型验证错误
“ID 字段是必需的。”
为什么会出现这种情况?
默认情况下,该Id
字段被分配为 0(应该如此),然后它将被传递到数据层以创建记录,所以我看不出问题出在哪里?
任何帮助,将不胜感激。