MVC 模型状态验证失败,为空值

本文关键字:空值 失败 验证 模型 状态 MVC | 更新日期: 2023-09-27 18:35:28

如果我有以下模型:

public class Model
{
    public int ModelID { get; set; }
    public string Title { get; set; }
    public DateTime Created { get; set; }
}

以及以下控制器方法:

public ActionResult Create(Model model)
{
    if (ModelState.IsValid)
    {
        model.Created = DateTime.Now;
        // Save to DB
    }
}

在视图中,"已创建"字段是隐藏的,因为我希望它填充调用 Create 控制器方法时的时间戳。由于模型的原因,这将失败模型状态验证。创建的属性为空。

我不想制作模型。创建的属性可为空,但我需要以某种方式指定视图中不需要此字段。有人可以建议如何完成此操作吗?

MVC 模型状态验证失败,为空值

您需要

使用 [Bind] 属性从绑定中排除 Created 属性,如下所示:

public ActionResult Create([Bind(Exclude = "Created")] Model model)
{
    ....
}

出于安全原因,也建议这样做,因为您不希望客户端为您设置Created值。