Asp.net MVC 数据注解与验证

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Asp.net MVC 数据注解与验证相关的知识,希望对你有一定的参考价值。

数据注解特性定义在名称空间System.ComponentModel.DataAnnotations中(有些特性定义在其他名称空间中),它们提供了服务器端验证的功能,当在模型的属性上使用这些特性时,框架也支持客户端验证。

常用特性

1、Required --必填字段
示例:[Required]
2、StringLength --字符长度限制
示例:[StringLength(16,MinimumLength=3)]
3、RegularExpression --正则表达式验证
示例:[RegularExpression(@"")]
4、Range --指定数值类型值的最小值和最大值
示例:[Range(typeof(decimal),"0.00","99.99")]
System.Web.Mvc下的验证特性
5、Remote特性 --唯一值验证(比如:身份证号/驾驶证号等)
示例:[Remote("ControllerName","ActionName")]
6、Compare --确保模型对象的两个属性拥有相同的值(比如,设置密码,确认密码)
示例:[Compare("")]
7、Display --在视图上显示友好的“名称”
示例:[Display(Name="",Order=3)]
Order用于控制属性在视图上的显示次序
8、ScaffoldColumn
EditorForModel和DisplayForModel辅助方法将不再为属性显示输入元素和label标签。
示例:[ScaffoldColumn(false)]
注意事项:如果模型绑定器在请求中看到匹配的值,那么仍然会为UserName属性赋值。
9、DisplayFormat
可以用来处理属性的各种格式化选项。
示例:[DisplayFormat(ApplyFormatInEditMode=true,DataFormatString="{0:c}")]
10、ReadOnly
确保默认的模型绑定器不使用请求中的新值更新指定属性
示例:[ReadOnly(true)]
注意事项:EditorForModel辅助方法仍然会为Total属性显示一个可用的输入元素。只有模型绑定器考虑ReadOnly特性。
11、DataType
示例:[DataType(DataType.Password)]
html编辑器辅助方法渲染出一个type特性值为password的输入元素,其他数据类型还有Currency、Date、Time和MultilineText
12、HiddenInput
渲染一个type特性值为hidden的输入元素

 

每个验证特性都允许传递一个带有自定义错误提示消息的参数

例如: [Required(ErrorMessage="")]

   [StringLength(16,ErrorMessage="")]

国际化: [Required(ErrorMessageResoureType=typeof(ErrorMessages),ErrorMessageResourceName="LastNameRequired")]

    [StringLength(16,ErrorMessageResoureType=typeof(ErrorMessages),ErrorMessageResourceName="LastNameTooLong")]

这里假设项目中有名为ErrorMessages.resx的资源文件,并且包含LastNameRequired和LastNameTooLong条目。 使用本地化的资源文件,需要将当前线程的UICulture属性设置为相应的语言。

以上是关于Asp.net MVC 数据注解与验证的主要内容,如果未能解决你的问题,请参考以下文章

处理 OAuth 2.0 身份验证 - 在 ASP.NET MVC 应用程序中获取令牌重定向令牌响应

ASP.NET MVC中jQuery与angularjs混合应用传参并绑定数据

MVC Contrib 是不是兑现了提高 ASP.NET MVC 生产力的承诺

跟我学ASP.NET MVC之十一:URL路由

ASP.Net MVC开发基础学习笔记:四校验AJAX与过滤器

在 ASP.NET Core 2 中处理异常的推荐方法? [关闭]