重定向后未显示验证消息(使用ModelStateToTempData属性)

时间:2009-07-14 20:45:01

标签: asp.net-mvc mvccontrib

我在重定向后没有显示验证消息时遇到问题,即使我正在使用MVCConrib的ModelStateToTempData。我忽略了一些基本的东西吗?

[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 个答案:

答案 0 :(得分:1)

您是否使用[ModelStateToTempData]装饰两个控制器?

詹姆斯

答案 1 :(得分:0)

肯定在视图中显示验证消息吗?

答案 2 :(得分:-3)

如果ModelState中有任何错误,则不应重定向到任何其他控制器。如果ModelState中存在错误,则没有goot可以导航到其他控制器 - 最好是重定向成功,但不是失败。

只需检查ModelState是否包含任何错误,并从。

返回View of recived request
 if (!ValidateLogOn(email, password))
 {
     return View("Index");
 }