[英]How can I validate with ModelState after adding values on the controller?
我的控制器上有以下[post] create方法:
[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属性中,因为它是一个非null字段,并且在ModelState对象中该值仍然为null。
我对ModelState不太了解,但是我假设它只是在验证使用POST调用构建的模型。
有没有一种方法可以用我在控制器上分配的新数据(admin.HireDate = DateTime.Today)“更新” ModelState对象?
一种更合适的方法是在Page呈现之前分配属性。 因此,在返回原始视图的Create方法上,您可以执行此操作。
public ActionResult Create()
{
Admin admin = new Admin();
admin.HireDate = DateTime.Today;
return View(admin);
}
然后,您将必须使用@Html.HiddenFor(x => x.HireDate)
,以便View能够将其发送回Controller。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.