繁体   English   中英

在控制器上添加值后如何使用ModelState进行验证?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM