В настоящее время у меня есть сайт MVC3, на котором я отображаю поля DateTime в определенном формате, а именно в верхнем регистре (DD-MON-YYYY).
Для этого я создал следующий шаблон DateTime.ascx EditorTemplate, и я добавляю пользовательский атрибут data-datepicker, который выбирается некоторым пользовательским javascript для добавления DateUpicker пользовательского интерфейса Jquery в поле.
<% @ Control Language = "C #" Inherits = "System.Web.Mvc.ViewUserControl"%>
<input id="<%= ViewData.ModelMetadata.PropertyName %>"
name="<%= ViewData.ModelMetadata.PropertyName %>"
type="text"
value="<%= ViewData.TemplateInfo.FormattedModelValue.ToString().ToUpper() %>"
data-datepicker="true" />
У меня проблема в том, что при использовании EditorTemplate я теряю все атрибуты RemoteValidation в поле ввода. Очевидно, потому что я специально не добавляю их!
Может ли кто-нибудь указать мне правильное направление, где я могу найти необходимую информацию в метаданных модели или модели, чтобы я мог построить поле ввода с помощью удаленной проверки и выбора даты JQueryUI?
Это то, что я сейчас получаю от EditorTemplate:
<input id="MyDate"
name="MyDate"
type="text"
value="19-SEP-2011"
data-datepicker="true" />
Вот что я хочу в итоге:
<input class="text-box single-line"
data-val="true"
data-val-remote="&#39;Date (DD-MON-YYYY)&#39; is invalid."
data-val-remote-additionalfields="*.MyDate"
data-val-remote-url"=/Validation/IsDateValid"
data-val-required="A Date must be given"
id="MyDate"
name="MyDate"
type="text"
value="19-Sep-2011"
data-datepicker="true" />
Несколько замечаний:
- Я открыт для использования HTMLHelper, если требуется. Я не ограничен шаблоном EditorTemplate
- У меня есть разные действия RemoteValidation на контроллере, которые используются для разных дат. Поэтому я не могу просто жестко закодировать URL-адрес валидации. Мне нужно найти значение из атрибута RemoteAttribute, оформленного в поле модели.
- Аналогично, значение data-val-remote также требует загрузки на основе атрибута RemoteAttribute в поле модели.
У кого-нибудь есть идеи?