Я хотел бы, чтобы дополнительные свойства сложного типа требовались ТОЛЬКО в определенных случаях. для этого я использую FoolProof lib.ASP.NET MVC, Удалить [Обязательно] для сложных типов типов типов
Например, для регистрации расписания рабочей недели. У меня есть сложный класс POCO для хранения timespans так:
[ComplexType]
class workDay{
[Required]
public TimeSpan start { get; set; }
[Required]
public TimeSpan end { get; set; }
[Required]
public TimeSpan interval { get; set; }
}
соответствующая часть недели POCO класса:
[ComplexType]
class Week{
[Required]
public bool monday { get; set; }
[RequiredIfTrue("monday")]
public workDay monday_timespan {get;set;}
[Required]
public bool tuesday { get; set; }
[RequiredIfTrue("tuesday")]
public workDay tuesday_timespan {get;set;}
// ...
[Required]
public bool sundat { get; set; }
[RequiredIfTrue("sunday")]
public workDay sunday_timespan {get;set;}
}
Как вы можете видеть, класс WORKDAY требуется только заполняется, если день корреспондент верен.
Однако для проверки всегда требуются все интервалы времени. Как-то можно отключить требуемый параметр внутри параметра sub complextype на основе класса POCO недели?
Требуется ли эта валидация только для того, боковая сторона? –
Я не думаю, что 'RequiredIf' в' FoolProof' работает для сложных моделей, а также для аннотации для ближайшего, что в вашем случае означает аннотации 'workDay'. попробуйте добавить свойства 'workDay' в свой класс' Week', а затем обработать детали в привязке модели. – Hadee
'[RequiredIf (" tuesday ")]' не имеет смысла. Формат: '[RequiredIf (" someOtherProperty "," ValueOfOtherProperty ")] Возможно, вы имели в виду' [RequiredIfTrue ("tuesday")] '? –