0

MVC5 と .NET 4.5 の使用

Editor Template を使用し、ValidationAttribute として機能する DataTypeAttribute を作成したいと考えています。

私が理解しているように、DataTypeAttribute は ValidationAttribute を継承しているので、これが難しいとは思いませんでした。

ただし、検証することはできません。

これが私の属性です:

[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
public class XXXAttribute : DataTypeAttribute
{
    public XXXAttribute() : base("XXX") { }

    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        // validation code
    }

}

これが私のViewModelのプロパティです:

    [XXX]

    [Display(Name = "XXX")]
    public string XXX { get; set; }

XXXAttribute の IsValid メソッドのデバッガーは、送信時にチェックされていないことを示しています。

誰かが私が間違ったことを指摘できますか? ありがとうございました。

4

1 に答える 1

0

エディター テンプレートは、DataTypes 命名規則で機能します。そのため、string.cshtml が必要になるか (推奨されません)、使用するテンプレートを明示的に指定する EditorFor オーバーライドを使用できます。

@Html.EditorFor(model => model.XXX, "XXX")

ドキュメントhttp://msdn.microsoft.com/en-us/library/ee407414(v=vs.118).aspxを参照してください。

于 2014-12-16T20:50:56.913 に答える