ASP.NET MVC 3数据注释:动态添加验证
发布时间:2020-05-24 01:23:25 所属栏目:asp.Net 来源:互联网
导读:我是新的数据注释.我想知道是否可能(以及如何)动态添加一些验证.解释为什么是非常广泛的,但是我有一个ViewModel在创建时接收和对象.在该对象中,我必须检查一些属性,并根据其值应该有或没有一些验证. 一个例子: public class ProfileViewModel{ [Required(Err
|
我是新的数据注释.我想知道是否可能(以及如何)动态添加一些验证.解释为什么是非常广泛的,但是我有一个ViewModel在创建时接收和对象.在该对象中,我必须检查一些属性,并根据其值应该有或没有一些验证. 一个例子: public class ProfileViewModel
{
[Required(ErrorMessage = "The field {0} is required")]
[Display(Name = "Client Code")]
public int ClientCode { get; set; }
[Required(ErrorMessage = "The field {0} is required")]
[StringLength(100,ErrorMessage = "The field {0} must have up to 100 characters.")]
[Display(Name = "Company")]
public string Company { get; set; }
[StringLength(50,ErrorMessage = "The field {0} must have up to 50 characters.")]
[Display(Name = "Name")]
public string Name { get; set; }
[StringLength(50,ErrorMessage = "The field {0} must have up to 50 characters.")]
[Display(Name = "LastName")]
public string LastName { get; set; }
public ProfileViewModel(User usr)
{
if (usuario.ClientCode != null)
{
ClientCode = Convert.ToInt32(usr.ClientCode);
}
else
{
//ClientCode and Company are not yet required.
//Name and LastName are now required.
}
Company = usr.Company;
Name = usr.Name;
LastName = usr.LastName;
}
}
解决方法我认为最简单的做法就是实现IValidatableObject:
public class Product : IValidatableObject
{
public int Prop1 { get; set; }
public int Prop2 { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (Prop1 < Prop2)
yield return new ValidationResult("Property 1 can't be less than Property 2");
}
}
参见:Class-Level Model Validation with … ASP.NET MVC 3 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 可以在ASP.NET MVC中本地化URL /路由吗?
- asp.net核心 – ASP – 启动时核心迁移EF核心SQL DB
- asp.net-mvc – 为ASP.NET MVC Action Links添加rel和title
- asp.net-web-api – 在运行时禁用ApiController
- asp.net – 数据绑定下拉列表 – 初始值
- asp.net-mvc – 如何在RegularExpression中忽略大小写?
- ASP.NET网站或Web项目
- asp.net – MSDeploy.exe可以作为管理员连接,但不能连接任何
- asp.net – 评论.aspx
- asp-classic – %%和经典asp之间有什么区别?
