ASP.NET MVC(2)数据注释验证和UpdateModel <t>(C#)</t>

时间:2010-10-13 03:01:29

标签: validation asp.net-mvc-2

所以,如果我想在我的数据库中添加一个新对象,我可以这样写:

public ActionResult Something(SomeObject Object) {
    if (ModelState.IsValid()) {
        DataContext.SomeObjects.InsertOnSubmit(Object);
        DataContext.SubmitChanges();
    };
}

但是,当我想要更新对象时,如何调用验证? UpdateModel<T>是否会自动执行验证,或者我必须做些什么来告诉它,或者我是否必须在调用UpdateModel<t>之前做一些事情?

修改

对于@SLaks,我也这样做:

UpdateModel<SomeObject>(Object);

if (ModelState.IsValid()) {
    DataContext.SubmitChanges();
};

或者,如果我正在屠杀那个,请以正确的方式告诉我。

2 个答案:

答案 0 :(得分:1)

您应该再次检查ModelState.IsValid()

答案 1 :(得分:1)

您的原始问题似乎是“如何调用验证?”。

如果对象实现了IDataErrorInfo接口,则会在对象上调用验证。在模型绑定器中实现了IDataErrorInfo - 这是在执行传递给Action之前发生的。

所以,简而言之:如果你使用DataAnnotations,你不必告诉它做某事。在您获得Action的代码之前,验证会自动进行。这就是ModelState.IsValid()返回值的原因 - 因为验证已经完成。