Можете ли вы иметь редакторов ребенка в ASP.NET MVC 2?

StackOverflow https://stackoverflow.com/questions/3756496

Вопрос

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

<%: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)%>

Это хранится в папке «Общие / редакторы». У меня также есть шаблон редактора DateTime.ascx в том же месте, чтобы переопределить все поля DateTime.

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

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

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

Это было полезно?

Решение 2

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

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

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top