MVC3:无法返回登录验证错误消息到Index.cshtml与登录PartialView
我是新来的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()只显示登录错误讯息?
您必须在窗体内使用@Html.ValidationSummary()
才能显示模型验证错误。
Ex。
@using(Html.BeginForm())
{
@Html.ValidationSummary()
.. fields
}
错误信息未显示的地方?在验证总结? – VJAI 2012-07-09 16:26:26