MVC ModelState验证失败为null值

时间:2013-10-14 14:13:55

标签: c# asp.net-mvc validation

如果我有以下型号:

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
    }
}

在视图中隐藏了Created字段,因为我希望这个字段填充调用Create控制器方法的时间戳。由于model.Created属性为null,因此无法进行ModelState验证。

我不想让model.Created属性为Nullable但我需要以某种方式指定视图中不需要此字段。有人可以建议如何做到这一点吗?

1 个答案:

答案 0 :(得分:6)

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

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

出于安全原因,我们也建议您使用它,因为您不希望客户为您设置Created值。