因此,如果我想向数据库中添加一个新的对象,我可以这样写:
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();
};
或者,如果我在屠杀它,请告诉我正确的方法。
发布于 2010-10-12 19:33:57
您最初的问题似乎是“验证是如何被调用的?”
如果对象实现了IDataErrorInfo
接口,则对其调用验证。IDataErrorInfo
是在Model中实现的--这发生在执行传递给您的操作之前。
所以,简单地回答:如果你使用DataAnnotations
,你不需要告诉它去做什么。验证在您到达Action的代码之前自动进行。这就是为什么ModelState.IsValid()
返回一个值的原因--因为验证已经完成。
发布于 2010-10-12 19:04:51
你应该再检查一次ModelState.IsValid()
。
https://stackoverflow.com/questions/3920487
复制