所以,如果我想在我的数据库中添加一个新对象,我可以这样写:
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();
};
或者,如果我正在屠杀那个,请以正确的方式告诉我。
答案 0 :(得分:1)
您应该再次检查ModelState.IsValid()
。
答案 1 :(得分:1)
您的原始问题似乎是“如何调用验证?”。
如果对象实现了IDataErrorInfo
接口,则会在对象上调用验证。在模型绑定器中实现了IDataErrorInfo
- 这是在执行传递给Action之前发生的。
所以,简而言之:如果你使用DataAnnotations
,你不必告诉它做某事。在您获得Action的代码之前,验证会自动进行。这就是ModelState.IsValid()
返回值的原因 - 因为验证已经完成。