7

我有一个 Subsonic3 Active Record 生成的部分用户类,我在一个单独的部分类中使用一些方法对其进行了扩展。

我想知道是否可以将数据注释添加到一个部分类的成员属性中,该部分类在另一个 Subsonic Generated 上声明,我试过了。

public partial class User
{
    [DataType(DataType.EmailAddress, ErrorMessage = "Please enter an email address")]
    public string Email { get; set; }

    ...
}

该示例给出“成员已定义”错误。

我想我前段时间可能已经看过一个例子,说明我正在尝试使用动态数据和 Linq2Sql 做什么。

4

3 回答 3

11

您需要做的是创建一个“伙伴类”并将数据注释应用于该类:

[MetadataType(typeof(UserValidation))]
public partial class User 
{
  ...
}

public class UserValidation
{
  [DataType(DataType.EmailAddress, ErrorMessage = "Please enter an email address")]
  public string Email { get; set; }
}
于 2009-08-05T11:55:58.737 回答
1

您应该按照 Scott Guthrie http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx的解释创建一个伙伴类

于 2011-01-08T00:46:02.177 回答
0

这不会直接回答您的问题,但我遇到了同样的问题,到目前为止,我一直在使用 FluentValidation 框架 {0} 并取得了巨大成功,而不是使用 DataAnnotations。它工作得很好,因为它提供了许多相同的功能,但不通过使用类成员的属性来应用验证。验证发生在一个完全独立的类中,该类作用于被验证的类(即 UserValidator)。

{0}: http: //fluentvalidation.codeplex.com/

于 2009-08-06T01:14:31.127 回答