У меня есть модель представления, которая содержит 5 экземпляров класса в качестве под-свойств.Эти подчиненные свойства отображаются с использованием частичного представления следующим образом:
<%Html.RenderPartial("_EntryItemForm", Model.EntryItem1, new ViewDataDictionary { TemplateInfo = new System.Web.Mvc.TemplateInfo { HtmlFieldPrefix = "EntryItem1" } }); %>
<%Html.RenderPartial("_EntryItemForm", Model.EntryItem2, new ViewDataDictionary { TemplateInfo = new System.Web.Mvc.TemplateInfo { HtmlFieldPrefix = "EntryItem2" } }); %>
<%Html.RenderPartial("_EntryItemForm", Model.EntryItem3, new ViewDataDictionary { TemplateInfo = new System.Web.Mvc.TemplateInfo { HtmlFieldPrefix = "EntryItem3" } }); %>
<%Html.RenderPartial("_EntryItemForm", Model.EntryItem4, new ViewDataDictionary { TemplateInfo = new System.Web.Mvc.TemplateInfo { HtmlFieldPrefix = "EntryItem4" } }); %>
<%Html.RenderPartial("_EntryItemForm", Model.EntryItem5, new ViewDataDictionary { TemplateInfo = new System.Web.Mvc.TemplateInfo { HtmlFieldPrefix = "EntryItem5" } }); %>
В частичном представлении у меня есть следующее (показывает только одно поле):
<%: Html.LabelFor<EntryItemForm, string>(x => x.ItemName)%>
<%: Html.TextBoxFor<EntryItemForm, string>(x => x.ItemName)%>
<%: Html.ValidationMessageFor(x => x.ItemName)%>
Меткаи текстовые поля отображаются с правильными идентификаторами, именами и т. д., и механизм связывания модели по умолчанию все прекрасно обрабатывает.
К сожалению, даже когда ModelState содержит ошибку для поля ItemName, ValidationMessage никогда не появляется.Если я добавлю ValidationSummary в родительское представление, отобразится ошибка.Обычно я просто использую ValidationSummary и продолжаю, но дизайн, над которым я работаю, требует встроенных проверочных сообщений.
Кто-нибудь знает, почему это может быть?