В настоящее время у меня есть форма, которую я создаю, которая должна поддерживать две разные версии. Каждая версия может использовать разные подмножества полей формы. Я должен сделать это для поддержки двух разных клиентов, но я не хочу иметь совершенно разные действия контроллера для обоих.
Итак, я пытаюсь найти способ использовать строго типизированную модель с атрибутами проверки, но некоторые из этих атрибутов должны быть условными.
Некоторые подходы, о которых я могу подумать, аналогичны частичной проверке Стива Сандерсона .
Где бы я очищал ошибки модели в фильтре OnActionExecuting, основываясь на том, какая версия формы была активной.
Другой подход, о котором я думал, состоит в том, чтобы разбить модель на части, используя что-то вроде
class FormModel
{
public Form1 Form1Model {get; set;}
public Form2 FormModel {get; set;}
}
, а затем найдите способ просто проверить соответствующее свойство в зависимости от версии. В модели также будут общие свойства, применимые к обоим, которые всегда будут проверяться.
У кого-нибудь есть хорошее предложение по этому поводу?