【问题标题】:Adding DataAnnontations to Generated Partial Classes将 DataAnnotations 添加到生成的部分类
【发布时间】:2010-11-16 23:29:03
【问题描述】:

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

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

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

    ...
}

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

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

【问题讨论】:

    标签: validation subsonic subsonic3 data-annotations partial-classes


    【解决方案1】:

    您需要做的是创建一个“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; }
    }
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-25
        • 1970-01-01
        • 1970-01-01
        • 2022-11-09
        相关资源
        最近更新 更多