0

Использование MVC4, скажем, у вас была модель сущностей пользовательской проверки, можно ли передать модель в атрибуте пользовательские проверки, например:ссылка сущность модели MVC в пользовательской проверки атрибутов

public class ValidatableModel 
{ 
    [CustomValidation(typeof(CustomDependentValidation), "ValidateCDV", **this**)] 
    public string Attrib1 { get; set; ] 
    public string Attrib2 { get; set; } 
} 

к класс CustomDependentValidation объявлен как:

public class CustomDependentValidation : ValidationAttribute 
{ 
    public static ValidationResult ValidateCDV(ValidatedModel argValMod) //yes, ?-able. 
    { if (argValMod.Attrib1 == argValMod.Attrib2) { return ValidationResult.Success; } } 
} 

В коде выше была попытка extrapodecrapulate из примера CustomValidation MSDN страницы здесь: http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.customvalidationattribute(v=vs.95).aspx

(в версии Silverlight, я знаю ... на других страницах версии не было никакого кода примера)

Является самореферентной проверяющей моделью, подобной модели, которую я пытаюсь кодировать, просто невозможно в MVC4?

Возможно, это связано с тем, что аннотации не позволяют ссылаться на экземпляр экземпляра объекта или объекты модели сущности не имеют клиента, но я все еще изучаю MVC и легко теряю бизнес-конец.

+0

примечание: Я знаю, что уже проще Comparer аннотацию, это всего лишь простой пример. Возможность передавать атрибуты экземпляра будет такой же хорошей, но мне кажется, что нужна ссылка на экземпляр типа «this.Attrib1» – stackuser83

+0

, которая закончила работу с этой стороной валидации, никаких аннотаций не требуется – stackuser83

ответ

0

позже я обнаружил некоторые аналогичные решения проблемы подходов на SO:

Custom model validation of dependent properties using Data Annotations

Property-level validation errors hinder the validation of Class-level validation

короткий ответ, кажется, это не представляется возможным.

ответ размером ответ: это не в поле MVC4, но, кажется, возможно со временем достаточно работы

Смежные вопросы