Проверка ASP.NET MVC в слабо типизированных представлениях - PullRequest
0 голосов
/ 08 июня 2010

У меня проблема с проверкой данных в представлении, которое не является строго типизированным.Я обновляю данные из 3 разных моделей в этом представлении, и у меня есть методы проверки, которые работают на них, но я не знаю, как отобразить сообщение проверки.

Где я должен разместить сообщения проверки (длястрого типизированные представления Я помещаю их в ModelState, я полагаю, что в этом случае это не имеет смысла) и как мне их отображать (я сомневаюсь, что смогу использовать «validationmessagefor», может быть, «validationmessage» каким-либо образом)?

1 Ответ

2 голосов
/ 08 июня 2010

Использование Asp.net MVC очень легко проверить в строго типизированном виде, но если у вас есть представление, которое не строго типизировано, вы все равно можете сделать это легко. Предположим, у вас есть следующие действия в контроллере.

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Login(string userEmail, string password)
{
    if (ValidateLogin(userEmail, password))
    {
                //redirect
    }
    return View();
}

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

private bool ValidateLogin(string userEmail, string password)
{
    if (String.IsNullOrEmpty(userEmail))
    {
        ModelState.AddModelError("username", "You must specify a username.");
    }


    if (password == null || password.Length == 0)
    {
        ModelState.AddModelError("password",
               String.Format(CultureInfo.CurrentCulture,
               "You must specify a password."));
    }

    return ModelState.IsValid;
 }

Теперь, по вашему мнению, в этом случае login.aspx в папке представлений вы можете показать свою проверку следующим образом.

<label for="useremail">User Email:</label>
<%= Html.TextBox("useremail") %>
<%= Html.ValidationMessage("useremail")%>

Помимо этого, вы также можете показать сводку проверки или просто показать общий метод, используя следующий вспомогательный метод.

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