我一直在阅读有关ASP.NET MVC 2模型验证的内容,我很喜欢它会自动将相同的规则应用于客户端和服务器端对象。但是,我见过的所有示例都使用了自定义模型对象。我正在开发的一个设计使用属性包(key->值对的列表,如字典),每个都可以有不同的验证。
例如
ASP.NET MVC 2模型验证是否可以验证这些规则,是否有自定义验证引擎?
答案 0 :(得分:1)
ASP.NET MVC 2模型验证 验证这些规则,有或没有 自定义验证引擎?
对不起我的上一个答案,这有点模糊。对于任何长度或字符数验证,常规表达式是关键。但是你的情况有点不同。
这里可以使用mvc 2模型验证做什么:
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. }
所以我会说,对于使用密钥列表和所有这些内置验证的自定义内容,使用MVC 2中包含的默认验证规则是不可能的。您需要制定自己的验证规则。请参阅http://haacked.com/archive/2009/11/19/aspnetmvc2-custom-validation.aspx上的自定义模型验证。
希望有所帮助。