我有一个Subsonic3活动记录生成的部分用户类我已经延长了在一个单独的部分类的一些方法。

我想知道是否有可能数据注释添加到成员属性在何处它被声明在另一亚音速生成的一个我尝试这样一个部分类。

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

    ...
}

这例子给出了“会员已经定义”错误。

我想我可能已经看到了什么,我想用动态数据和LINQ2SQL做榜样前一阵子。

有帮助吗?

解决方案

你将需要做的是建立一个“的伙伴类”和应用数据注释该类别:

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

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

其他提示

您应该创建一个哥们类作为这里由Scott Guthrie的解释 的http://博客.asp.net / scottgu /存档/ 2010/01/15 / ASP-净-MVC -2-模型validation.aspx

这不会直接回答你的问题,但我有同样的问题,而不是使用DataAnnotations,我一直在使用FluentValidation框架{0}大获成功为止。它的工作原理很好,因为它提供许多相同的功能,但不通过使用类的成员属性的应用验证。验证发生在一个完全独立的类作用于被验证的类(即UserValidator)。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top