Сообщение проверки не отображается после перенаправления (с использованием атрибута ModelStateToTempData) - PullRequest
2 голосов
/ 15 июля 2009

У меня проблема с сообщениями проверки, которые не отображаются после перенаправления, даже когда я использую ModelStateToTempData MVCConrib Я пропускаю что-то фундаментальное?

[ModelStateToTempData]
public class AccountController : BaseController
{
    public ActionResult LogOn(string email, string password, string returnUrl)
    {
        if (!ValidateLogOn(email, password))
        {
            return RedirectToAction("Index", "AnotherController");
        }

        //other stuff
    }

private bool ValidateLogOn(string email, string password)
{
    if (!_userTask.ValidateUser(email, password))
    {
        ModelState.AddModelError("message", "The email or password provided is incorrect.");
    }

    return ModelState.IsValid;
}
}

Вид:

   <li>
        <label for="email">E-mail</label>
        <%= Html.TextBox("email")%>
        <%= Html.ValidationMessage("message") %>
    </li>  

Ответы [ 3 ]

1 голос
/ 15 июля 2009

Вы украшаете оба контроллера с [ModelStateToTempData]?

Джеймс

0 голосов
/ 15 июля 2009

Вы не должны перенаправлять на любой другой контроллер, если у вас есть ошибка в ModelState. В случае ошибки в ModelState нет необходимости переходить к другому контроллеру - лучше перенаправить при успехе, но не при ошибке.

Просто проверьте, содержит ли ModelState какие-либо ошибки, и верните запрос, от которого вы получили запрос.

 if (!ValidateLogOn(email, password))
 {
     return View("Index");
 }
0 голосов
/ 15 июля 2009

Вы определенно отображаете сообщение проверки в представлении?

...