0

Использование MVC5 и .NET 4.5Создать DataTypeAttribute, который использует редактор шаблонов и является ValidationAttribute

Я хочу сделать DataTypeAttribute, что оба будут использовать редактор шаблонов и работать в качестве ValidationAttribute.

Как я понимаю, 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; } 

отладчик в IsValid метод моего XXXAttribute показывает, что она никогда не проверяется на кнопку.

Может кто-нибудь указать мне, что я сделал неправильно? Спасибо.

ответ

0

Шаблоны редактора работают над соглашением об именах DataTypes. Поэтому вам понадобится string.cshtml (не рекомендуется), или вы можете использовать переопределение EditorFor, которое явно сообщает, какой шаблон использовать.

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

См документации http://msdn.microsoft.com/en-us/library/ee407414(v=vs.118).aspx