2009-07-14 88 views
2

即使使用MVCConrib的ModelStateToTempData,我在重定向後仍未顯示驗證消息時出現問題。我是否忽略了一些基本的東西重定向後不顯示驗證消息(使用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> 

回答

1

你用[ModelStateToTempData]裝飾兩個控制器嗎?

詹姆斯

+0

我需要我來試試 – Dan 2009-07-14 21:28:28

+0

該訣竅? - 現在,很明顯你說。 – Dan 2009-07-14 21:30:40

0

肯定顯示視圖中的驗證消息?

+0

啊:( - IV更新的問題,以反映該 – Dan 2009-07-14 21:04:31

-3

,如果你有在ModelState中的任何錯誤,您不應重定向到任何其他控制器。如果ModelState中存在錯誤,則無法導航到其他控制器 - 最好重定向成功,但不要失敗。

只需檢查ModelState是否包含任何錯誤並返回您從中收取請求的視圖。

if (!ValidateLogOn(email, password)) 
{ 
    return View("Index"); 
}