Asp.net mvc 2 ASP.NET MVC 2模型验证能否处理属性包?
我一直在阅读有关ASP.NET MVC 2模型验证的文章,我很喜欢这样一个事实,即它会自动将相同的规则应用于客户端和服务器端对象。但是,我看到的所有示例都使用了自定义模型对象。我正在研究的一个设计使用属性包(键->值对列表,如字典),每个属性包可以有不同的验证 比如说Asp.net mvc 2 ASP.NET MVC 2模型验证能否处理属性包?,asp.net-mvc-2,properties,asp.net-mvc-2-validation,Asp.net Mvc 2,Properties,Asp.net Mvc 2 Validation,我一直在阅读有关ASP.NET MVC 2模型验证的文章,我很喜欢这样一个事实,即它会自动将相同的规则应用于客户端和服务器端对象。但是,我看到的所有示例都使用了自定义模型对象。我正在研究的一个设计使用属性包(键->值对列表,如字典),每个属性包可以有不同的验证 比如说 发票编号:字母数字,正好10个字符 用户名:少于50个字符 发票金额:元 ASP.NET MVC 2模型验证是否可以在使用或不使用自定义验证引擎的情况下验证这些规则 能否进行ASP.NET MVC 2模型验证 验证这些规则,无
- 发票编号:字母数字,正好10个字符
- 用户名:少于50个字符
- 发票金额:元
1. using System;
2. using System.ComponentModel.DataAnnotations;
3.
4. namespace FunWithMvc2RC2
5. {
6. public class Test
7. {
8. // StringLenght
9. [StringLength(5, ErrorMessage = "Maximum 25 Characters")]
10. public string StringLength { get; set; }
11.
12. // Required
13. [Required(ErrorMessage = "Required Field")]
14. public string Required { get; set; }
15.
16. // Required and StringLenght
17. [Required(ErrorMessage = "Required Field")]
18. [StringLength(5, ErrorMessage = "Maximum 25 Characters")]
19. public string Combos { get; set; }
20.
21. // Range Attribute
22. [Range(1, 31, ErrorMessage = "Minimum 1; Maximum 31")]
23. public int Range { get; set; }
24.
25. // RegularExpression Attribute
26. [RegularExpression(@"^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}$", ErrorMessage = "Invalid Email Address")]
27. public string Regex { get; set; }
28.
29. // Custom Regular Expression EmailAttribute
30. [Email(ErrorMessage = "Email Validation")]
31. public string Email { get; set; }
32. }
33. }
所以我想说,对于定制的东西,比如使用一个键列表,以及所有内置的validatioin,使用MVC2中包含的默认验证规则是不可能的。您需要制定自己的验证规则。请参见上的自定义模型验证
希望能有所帮助。我不确定这是如何回答这个问题的。你能详细说明一下吗?