Как передать сообщения об ошибках в Views? - PullRequest
0 голосов
/ 29 ноября 2011

Я хочу отображать сообщения об ошибках в моем представлении.Каков наилучший способ сделать это?

Что заменяет "???"в моем коде ниже?Я не хочу просто использовать Html.ValdiationSummary, потому что сейчас я думаю, что мне нужно обработать список самостоятельно и разместить определенные сообщения об ошибках в разных местах.Например, приведенный ниже код на самом деле нужно будет расширить, чтобы поместить некоторые сообщения об ошибках в плавающий элемент div, а другие могут отображаться в верхней части страницы.

Есть ли лучший способ сделать этовообще?Например, должен ли я использовать совершенно другой подход к передаче сообщений об ошибках из моего контроллера в представление?

Мой контроллер:

public ActionResult ForgotUsername(ForgotUsernameModel model)
{
    ...
    if (!Users.CheckUsername(model.UserName)) {
        ModelState.AddModelError("", "That username does not exist.");
    }
    ....
    return View(model);
}

Мой просмотр:

....
<%
if (???) {
    foreach (KeyValuePair<string, ModelState> item in ViewData.ModelState) {            
        if (item.Value != null && item.Value.Errors != null && item.Value.Errors.Count > 0) {
            foreach (ModelError e in item.Value.Errors) {                       
                Response.Write(String.Format("<div>{0}</div>", e.ErrorMessage));
            }
        }
    }
}
%>

1 Ответ

3 голосов
/ 29 ноября 2011
<% if (!ViewData.ModelState.IsValid) { %>
    <%= Html.ValidationSummary(true) %>
<% } %>

или просто:

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