加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – AddImplicitRequiredAttributeForValueTypes如何

发布时间:2020-12-16 09:46:54 所属栏目:asp.Net 来源:网络整理
导读:这是一个描述(ASP.NET MVC 3): 我将此参数DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes保留为默认值true(使用调试器检查) 我的模型中有值类型字段(int,DateTime,decimal): public class MyModel{ public int SomeFie
这是一个描述(ASP.NET MVC 3):

>我将此参数DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes保留为默认值true(使用调试器检查)
>我的模型中有值类型字段(int,DateTime,decimal):

public class MyModel
{    
   public int SomeField { get; set; }
}

>当我将空表单发布到此操作时(没有指定SomeField):

public ActionResult Submit(MyModel request)
  { 
      if (ModelState.IsValid)
      {
          ..
      }
  else
      {
          ..
      }
   }

>我没有任何验证错误!在我看来这是合乎逻辑的 – int的默认值是0.这是一个值.

问题:

如果我想强制这个值总是在请求中明确设置我应该使它可以为空并将[必需]放在它上面,这是有效的.但是DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes用于什么?

解决方法

如果我们引用ASP.NET MVC源,则仅在 DataAnnotationsModelValidatorProvider.Getvalidators方法中检查DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes,该方法为HTML Helpers(在呈现data-val- *属性时)和 DefaultModelBinder提供验证元数据.

因此,当需要更改客户端验证的行为并允许将值类型传递给控制器??操作时,允许传递空值(即,字段已过帐但没有设置值),可以设置DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读