ASP MVC 2: настраиваемое отображение обязательного элемента формы на основе ModelMetaData - PullRequest
2 голосов
/ 17 мая 2010

У меня есть приложение MVC 2, которое использует формы. Обязательные поля в форме задаются с помощью атрибутов, которые обновляют метаданные модели . Поля формы создаются с использованием метода MVC HtmlHelper: Html.EditorFor .

Это работает нормально, если речь идет о проверке, но кажется, что по умолчанию обязательные поля не отображаются пользователю (например, путем добавления * к элементу управления).

Если бы я хотел предоставить пользовательские средства отображения этого факта для пользователя (например, давайте представим, что я хочу изменить цвет фона элемента управления для редактирования), где лучше всего это сделать? Нужно ли мне создавать собственный помощник HTML, чтобы заменить EditorFor? Я пытался, но было трудно получить доступ к метаданным для правильного свойства. У меня уже есть собственный ModelMetaDataProvider, поэтому нет проблем с его добавлением, если это правильное место.

1 Ответ

2 голосов
/ 17 мая 2010

Вместо пользовательского помощника вам, вероятно, нужен собственный шаблон. Ваш пользовательский шаблон будет имитировать стандартный шаблон, за исключением того, что у вас будет маркер для обязательных полей. См. Статью в блоге Брэда Уилсона о шаблонах в MVC2 для получения дополнительной информации о том, как это сделать, но основная идея заключается в создании ViewUserControl в папках Shared / EditorTemplates (и Shared / DisplayTemplates), строго типизированных для вашей модель. Затем вы можете использовать EditorFor и DisplayFor и указать имя шаблона для использования, хотя я думаю, что он также подберет шаблон, если он строго типизирован для вашей модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...