![](/img/trans.png)
[英]ModelState.AddModelError on form level with ASP.NET MVC 2 RC
[英]ASP.Net MVC Using AddModelError with multiple ValidationSummary for querystring validation
我有一个包含两种形式的视图
@Html.ValidationSummary()
加载页面后,将检查querystring参数,如果存在,则调用:
ModelState.AddModelError("", "Querystring error");
但是,即使我在表单模型中指定属性,这也会导致错误消息同时出现在@Html.ValidationSummary()
中。
我有一个解决方法,就是在模型的表单中有一个单独的错误消息属性,并填充该错误消息属性,然后显示它是否存在于标签中,但是想知道是否可以指定一个单独的@Html.ValidationSummary()
在表格中允许我使用ModelState.AddModelError
吗?
遵循@GSerg提供的有用信息后,我认为我会分享自己的解决方案。
因此,我将每个表单分成两个单独的局部视图,而不是在同一个视图中包含两个表单,然后从主视图中调用每个表单...
@Html.Action("_RequestPartial")
@Html.Action("_LoginPartial")
每个局部视图都将包含要传递给它的模型,以及一个内部带有Html.ValidationSummary()
的Html.BeginForm
。
然后在Controller中,设置代码以正常返回视图(在这种情况下为Index视图)...
[HttpGet]
public ActionResult Index()
{
return View();
}
然后对于部分视图,为每个带有ChildActionOnly
注释的部分视图设置PartialViewResult
。
[ChildActionOnly]
public PartialViewResult _RequestPartial()
{
... code that populates model you want to pass ...
return PartialView(model);
}
[ChildActionOnly]
public PartialViewResult _LoginPartial()
{
... code that populates model you want to pass ...
return PartialView(model);
}
希望这对某人有帮助。
要显示特定的验证消息,请参见下面的代码段。 控制器:
[HttpGet]
public ActionResult Index()
{
ModelState.AddModelError("Error1", "Querystring error");
return View(new SampleViewModel());
}
查看:
@Html.ValidationMessage("Error1")
只是试图创建一个小提琴以获得完整的图片。 https://dotnetfiddle.net/GoMMhy
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.