ValidationMessage не отображается в пользовательском asp.net mvc 2 editortemplate - PullRequest
0 голосов
/ 27 января 2010

У меня проблемы с добавлением сообщения проверки в мой пользовательский шаблон редактора, это строка, которую я использую (я пытался опубликовать весь код шаблона, но безуспешно)

<%= Html.ValidationMessage(ViewData.ModelMetadata.PropertyName) %>

Если я помещу сообщение проверки для свойства модели вне шаблона, оно будет работать нормально, поэтому я знаю, что существует ошибка modelerror.

Есть идеи?

Ответы [ 2 ]

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

Я пользуюсь строго типизированными помощниками html.

Пример

<div class="editor-label"><%= Html.LabelFor(model => model); %></div>
<div class="editor-field"><%= Html.TextBoxFor(model => model); %></div>
<div class="editor-error"><%= Html.ValidationMessageFor(model => model); %></div>

Вы можете сделать то же самое без строго типизированных помощников, используя свойство Model ViewPage / Control.

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

У меня есть для вас ответ:)

Вам необходимо добавить префикс ключа вашей собственности к названию свойства в модели.

Например, если ваша модель выглядит так:

public class MyModel
{
    public ChildModel Child { get; set; }
}

И вы хотите добавить сообщение об ошибке, которое может видеть шаблон ребенка, вам необходимо добавить префикс ключа сообщения об ошибке следующим образом:

ModelState.AddModelError("Child.SomeKey", "Error message");

В представлении вашего шаблона ChildModel выведите на экран ошибку, подобную этой:

<%= Html.ValidationMessage("SomeKey")%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...