Можете ли вы иметь дочерние редакторы в ASP.Net MVC 2? - PullRequest
0 голосов
/ 21 сентября 2010

У меня есть шаблон редактора для пользовательского объекта.Довольно простой - просто содержит несколько строк и дат:

<%:Html.LabelFor(model => model.AString)%>
<%:Html.TextBoxFor(model => model.AString)%>

<%:Html.LabelFor(model => model.ADate)%>
<%:Html.EditorFor(model => model.ADate)%>

<%:Html.LabelFor(model => model.AnotherDate)%>
<%:String.Format("{0:d}", Model.AnotherDate)%>

Это хранится в папке Shared / EditorTemplates.У меня также есть шаблон редактора DateTime.ascx в том же месте, чтобы переопределить ВСЕ поля даты и времени.

Как видно из приведенного выше кода, одно из полей даты использует EditorFor для поля даты,другой нет.Тем не менее, они оба отображаются одинаково, что заставляет меня думать, что редактор DateTime недоступен.Что-то я делаю не так?Похоже, это можно сделать.

Я использовал редактор DateTime непосредственно в представлении, и он отлично работает.

Спасибо за любую помощь или понимание.

Ответы [ 2 ]

0 голосов
/ 22 сентября 2010

Я выяснил проблему:

У меня есть частичные классы метаданных, настроенные для аннотаций данных в модели (я использую структуру сущностей).Мое частичное представление даты для? DateTime (DateTime.ascx)

У меня был атрибут DataType для всех дат, установленный на [DataType(DataType.Date)] вместо [DataType(DataType.DateTime)].

Изменение этого атрибута исправило еговсе до.

0 голосов
/ 21 сентября 2010

Я пробовал ваш сценарий под MVC 2 и MVC 3, а под MVC 3 он работает так, как вы ожидаете.

Просто я правильно понимаю, что у вас есть EditorTemplates в вашей общей папке, содержащей ваш ComplexModel.ascxредактор и в вашем ComplexModel.ascx вы звоните Html.EditorFor(m => m.ADate).

Я не уверен насчет обновлений для MVC 2 в отношении этого, но MVC 3 определенно работает.

...