В настоящее время у меня есть сайт MVC3, на котором я отображаю поля DateTime в определенном формате, а именно в верхнем регистре (DD-MON-YYYY).
Я создал для этого следующий DateTime.ascx EditorTemplate, и я добавляю настраиваемый атрибут data-datepicker, который получает какой-то пользовательский javascript, чтобы добавить Jquery UI Datepicker в поле. ‹%@ 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 в поле модели.
У кого-нибудь есть идеи?