У меня есть одна форма, используемая для создания похожих предметов. Я упрощу сценарий демонстрации.ASP.Net MVC переменные обязательные поля
Вы можете создать один из многих типов контента. Вы можете добавить «Файл», «Папка», «Объявление» и т. Д. Я бы использовал/home/addcontent? Contenttype = FILE, чтобы определить, какие параметры показывать в представлении.
Каждый элемент контента имеет следующее.
- Имя
- Описание (необязательно)
A "Файл" также имеет:
- пункт Список
- FilePath
анонс также:
- Приоритет
- DisplayHomepageFLG (опционально)
Я мог бы добавить все эти к одному ViewModel со всеми примечаниями данных, но modelstate.isvalid почти никогда не верно, так как каждый «типа контента» обладает уникальными свойствами.
Есть ли какой-либо программный способ добавления или исключения конкретных аннотаций данных или у меня есть отдельная модель просмотра и контроллер для каждого типа содержимого?
нет, нет программного пути. (что я знаю). отделить этих плохих мальчиков и/или использовать полиморфные трюки, чтобы облегчить повторное использование кода. – RPM1984
Посмотрите, пожалуйста, возможное решение: http://stackoverflow.com/a/5367788/114029 –