我在重定向后没有显示验证消息时遇到问题,即使我正在使用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>
答案 0 :(得分:1)
您是否使用[ModelStateToTempData]装饰两个控制器?
詹姆斯
答案 1 :(得分:0)
你肯定在视图中显示验证消息吗?
答案 2 :(得分:-3)
如果ModelState中有任何错误,则不应重定向到任何其他控制器。如果ModelState中存在错误,则没有goot可以导航到其他控制器 - 最好是重定向成功,但不是失败。
只需检查ModelState是否包含任何错误,并从。
返回View of recived request if (!ValidateLogOn(email, password))
{
return View("Index");
}