在MVC中验证表单数据方法有多种:错误汇总显示,在每个验证的表单元素后显示等。www.asp.net/mvc网站上有教程。
(以Northwind的Product表为例,数据和对象使用ADO.NET Entity Data Model自动生成)
当使用一个表单添加一个Models.Product对象到数据库时,我们在当前Controlle中创建一个Create方法来实现,此方法接受一个Models.Product类型的参数,
在将创建新产品的时候DefaultModelBinder会将表单中的值转换成Models.Product对象,
DefaultModelBinder方法默认会检查当前类(在这里也即是Models.Product)是否继承IDataErrorInfo接口,当类继承了IDataErrorInfo接口时,类的每个属性会调用IDataErrorInfo的的索引器,如果当前索引器返回错误,the model binder 会自动将错误写入到model state,Controller类的ModelState中的错误在界面中使用Html.ValidationSummary()来显示。
DefaultModelBinder还会检测IDataErrorInfo.Error属性,此属性表示的是与当前类相关的非属性特性验证错误。
示例代码:
Code