我是新來的MVC(在WebForms 2年)。我想在我的Index.cshtml實現使用PartialView登錄如下:MVC3:無法返回登錄驗證錯誤消息到Index.cshtml與登錄PartialView
@Html.Action("LogOnPartial")
如果用戶名或密碼不正確,被調用的方法將達到該行預期:
ModelState.AddModelError("", "The user name or password provided is incorrect.");
因爲它是局部視圖,我通過模型回Index.cshtml如下,以顯示「不正確」的條目:
// If we got this far, something failed, redisplay form
return View("Index", model);
然後Index.cshtml會接着調用@ Html.Action(「LogOnPartia升「),這反過來觸發此:
[HttpPost]
public ActionResult LogOnPartial(LogOnModel model)
{
return PartialView(model);
}
渲染之後,將‘不正確’的條目將保持在文本框中如預期的,但上述錯誤消息‘提供的用戶名或密碼不正確’。不顯示。我猜這些錯誤消息不會在上面的方法中傳遞。
從部分視圖返回時如何顯示錯誤消息?
謝謝。
感謝馬克,你的建議是非常有幫助的。最初我已經在我的LogOnPartial.cshtml的末尾包含了@ Html.ValidationSummary(),但不知何故錯誤消息沒有出現在Index.cshtml中。現在我感動@ Html.ValidationSummary()來Index.cshtml如下:
@Html.Action("LogOnPartial")
@Html.ValidationSummary(true, "Login was unsuccessful. Please correct the errors and try again.")
,現在它工作正常,我可以看到登錄錯誤消息。
但是,現在我有另一個問題。在我的Index.cshtml中有兩個部分視圖。一個用於LogOnPartial.cshtml,另一個用於SignUpPartial.cshtml(您可能想要查看用WebForms編寫的www.iguardpayroll.com,您會看到左側欄中有兩個框:一個用於登錄,另一個用於註冊)。
除了在@ Html.Action(「LogOnPartial」)下面添加@ Html.ValidationSummary(),我還需要在@ Html.Action(「SignUpPartial」)下添加它以顯示由註冊過程引起的錯誤信息(例如電子郵件已經存在!)。但是,如果我這樣做,相同的LogOn錯誤消息將在LogOn部分和SignUp部分下出現兩次。
<div>
@Html.Action("LogOnPartial")
@Html.ValidationSummary(true, "Login was unsuccessful. Please correct the errors and try again.")
</div>
<div>
@Html.Action("SignUpPartial")
@Html.ValidationSummary(true, "Sign Up was unsuccessful. Please correct the errors and try again.")
</div>
我怎麼能告訴第一@ Html.ValidationSummary()只顯示與LogOnPartial錯誤信息,第二個@ Html.ValidationSummary()只顯示登錄錯誤訊息?
錯誤信息未顯示的地方?在驗證總結? – VJAI 2012-07-09 16:26:26