У меня есть приложение MVC 2, которое использует формы. Обязательные поля в форме устанавливаются с использованием атрибутов, которые обновляют model metadata. Поля формы создаются с использованием метода MVC HtmlHelper: Html.EditorFor.ASP MVC 2: Пользовательское отображение элемента требуемой формы на основе ModelMetaData
Это хорошо работает в отношении проверки, но кажется, что по умолчанию обязательные поля не отображаются пользователю (например, путем добавления * к элементу управления).
Если я хотел бы предоставить некоторые пользовательские способы отображения этого факта для пользователя (позволяет мне импортировать цвет фона для элемента управления редактированием, например), где это лучшее место для этого? Мне нужно создать пользовательский html-помощник для замены EditorFor? Я попытался, но оказалось трудно получить доступ к метаданным для правильного свойства. У меня уже есть пользовательский ModelMetaDataProvider, поэтому нет проблем с его добавлением, если это правильное место.
Спасибо за быстрый ответ. Я уже использую шаблоны отображения/редактора и рассматриваю это как вариант, так как вы можете получить доступ к данным из модели. Думаю, если бы я это сделал, мне нужно было бы предоставить шаблоны для каждого типа данных? – Nigel
Я попробовал, и он работал для регулярных текстовых полей, просто создав новый шаблон для строки. Другие входы и выходы не должны быть слишком сложными. Если никто другой не предложит лучшую альтернативу, я отмечу этот ответ и отправлю примерный код. – Nigel
Если вы используете стандартные помощники из шаблона, все работает так, как ожидалось, поэтому вам не нужны шаблоны для стандартных типов данных, а именно для ваших моделей. Вы также можете сделать что-то с javascript, чтобы добавить что-то после обязательных полей, используя 'window.mvcClientValidationMetadata', чтобы найти поля с ValidationType' required' и добавить флаг. – tvanfosson