我有一个Subsonic3 Active Record生成的部分User类,我已经在一个单独的分部类中扩展了一些方法。
我想知道是否有可能将数据注释添加到一个部分类的成员属性中,并在我尝试过的另一个Subsonic Generated上声明它。
public partial class User
{
[DataType(DataType.EmailAddress, ErrorMessage = "Please enter an email address")]
public string Email { get; set; }
...
}
该示例给出了“已定义成员”错误。
我想我之前可能已经看过一些关于动态数据和Linq2Sql的例子。
答案 0 :(得分:10)
您需要做的是创建一个“buddy class”并将数据注释应用于该类:
[MetadataType(typeof(UserValidation))]
public partial class User
{
...
}
public class UserValidation
{
[DataType(DataType.EmailAddress, ErrorMessage = "Please enter an email address")]
public string Email { get; set; }
}
答案 1 :(得分:1)
你应该按照Scott Guthrie的说明创建一个好友类 http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx
答案 2 :(得分:0)
这不会直接回答你的问题,但我遇到了同样的问题,而不是使用DataAnnotations,到目前为止我一直在使用FluentValidation框架{0}取得了巨大的成功。它工作得很好,因为它提供了许多相同的功能,但不通过使用类成员的属性来应用验证。验证发生在一个完全独立的类中,该类作用于要验证的类(即UserValidator)。