1

我是新來的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()只顯示登錄錯誤訊息?

+0

錯誤信息未顯示的地方?在驗證總結? – VJAI 2012-07-09 16:26:26

回答

0

您必須在窗體內使用@Html.ValidationSummary()才能顯示模型驗證錯誤。

Ex。

@using(Html.BeginForm()) 
{ 
    @Html.ValidationSummary() 
    .. fields 
}