2

如果我有以下型号:

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 属性为空,因此模型状态验证失败。

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

4

1 回答 1

6

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

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

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

于 2013-10-14T14:18:42.387 回答