2012-03-09 4 views
1

У меня есть одна форма, используемая для создания похожих предметов. Я упрощу сценарий демонстрации.ASP.Net MVC переменные обязательные поля

Вы можете создать один из многих типов контента. Вы можете добавить «Файл», «Папка», «Объявление» и т. Д. Я бы использовал/home/addcontent? Contenttype = FILE, чтобы определить, какие параметры показывать в представлении.

Каждый элемент контента имеет следующее.

  1. Имя
  2. Описание (необязательно)

A "Файл" также имеет:

  1. пункт Список
  2. FilePath

анонс также:

  1. Приоритет
  2. DisplayHomepageFLG (опционально)

Я мог бы добавить все эти к одному ViewModel со всеми примечаниями данных, но modelstate.isvalid почти никогда не верно, так как каждый «типа контента» обладает уникальными свойствами.

Есть ли какой-либо программный способ добавления или исключения конкретных аннотаций данных или у меня есть отдельная модель просмотра и контроллер для каждого типа содержимого?

+0

нет, нет программного пути. (что я знаю). отделить этих плохих мальчиков и/или использовать полиморфные трюки, чтобы облегчить повторное использование кода. – RPM1984

+0

Посмотрите, пожалуйста, возможное решение: http://stackoverflow.com/a/5367788/114029 –

ответ

0

Единственный способ, который я могу придумать, - использовать RemoteValidationAttribute.

Look here также для образца

Затем в контроллере, вы не будете использовать ModelState.IsValid, но только проверки в вашей бизнес-логики

Вы также можете думать об использовании JQuery.validation с вашим собственные скрипты для проверки полей

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