• Model Binder需要更新Model State。Model State封装了 Model状态。

  • ModelState包含属性IsValid ,该属性表示 Model 是否成功更新。如果任何服务器端验证失败,Model将不更新。


        在Asp.net MVC,将使用 DataAnnotations来执行服务器端的验证。

使用元数据类型时,Model Binder 是如何工作的?

   

当Action方法包含元类型参数,Model Binder会与参数名称对比。

  • 当匹配成功时,响应接收的数据会被分配给参数。

  • 匹配不成功时,参数会设置为缺省值,例如,如果是字符串类型则被设置为null,如果是整型则设置为0.

  • 由于数据类型未匹配异常的抛出,不会进行值分配。


当参数是类时,Model Binder 是如何工作的?

   

当参数为类,Model Binder将通过检索类所有的属性,将接收的数据与类属性名称比较。

当匹配成功时:

如果接收的值是空,则会将空值分配给属性,如果无法执行空值分配,会设置缺省值,ModelState.IsValid将设置为fasle。

如果空值分配成功,会考虑值是否合法,ModelState.IsValid将设置为fasle。

如果匹配不成功,参数会被设置为缺省值。在本实验中ModelState.IsValid不会受影响。


本文出自 “葡萄城控件技术团队博客” 博客,请务必保留此出处http://powertoolsteam.blog.51cto.com/2369428/1669264