7

別の部分クラスのいくつかのメソッドで拡張した Subsonic3 Active Record 生成の部分 User クラスがあります。

ある部分クラスのメンバー プロパティにデータ注釈を追加できるかどうかを知りたいのですが、これを試した他のサブソニック生成クラスで宣言されています。

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

    ...
}

その例では、「メンバーは既に定義されています」というエラーが発生します。

Dynamic Data と 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

ここでScottGuthrieが説明しているように、バディクラスを作成する必要があります http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx

于 2011-01-08T00:46:02.177 に答える
0

これはあなたの質問に直接答えるものではありませんが、私は同じ問題を抱えていました。DataAnnotations を使用するのではなく、FluentValidation フレームワーク {0} を使用して、これまでのところ大きな成功を収めています。同じ機能の多くを提供しますが、クラスのメンバーの属性を使用して検証を適用しないため、うまく機能します。検証は、検証されるクラス (つまり、UserValidator) に作用する完全に別のクラスで行われます。

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

于 2009-08-06T01:14:31.127 に答える