我的控制器上有以下[post]创建方法:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include="Username","Name")] Admin admin)
{
// I assign the current date as the value to the HireDate property
admin.HireDate = DateTime.Today;
if (ModelState.IsValid)
{
// I do the insert
}
return View(admin);
}
ModelState.IsValid 以 false 的形式返回。 我查看了ModelState对象,发现 HireDate 属性中的错误是IS,因为它是一个非空字段,并且ModelState对象中的值仍为null。
我对ModelState了解不多,但我假设它只验证使用POST调用构建的模型。
有没有办法用我在控制器上分配的新数据“更新”ModelState对象(admin.HireDate = DateTime.Today)?
答案 0 :(得分:1)
更合适的方法是在Page甚至呈现之前分配属性。因此,在返回原始视图的Create方法中,您可以执行此操作。
public ActionResult Create()
{
Admin admin = new Admin();
admin.HireDate = DateTime.Today;
return View(admin);
}
然后,您必须使用@Html.HiddenFor(x => x.HireDate)
才能使View能够将其发送回Controller。