ASP.Net MVC使用AddModelError和多个ValidationSummary进行查询字符串验证
本文关键字:ValidationSummary 查询 验证 字符串 MVC Net 使用 AddModelError ASP | 更新日期: 2023-09-27 18:17:00
我有一个视图,有两个表单,每个都包含自己的
@Html.ValidationSummary()
当页面加载时,检查一个querystring参数,如果它存在,我调用:
ModelState.AddModelError("", "Querystring error");
但是,即使我在表单模型中指定了属性,这也会导致@Html.ValidationSummary()
中出现错误消息。
我有一个工作,这是有一个单独的错误消息属性在模型的形式和填充,然后显示它,如果它存在于一个标签,但想知道是否有可能指定一个单独的@Html.ValidationSummary()
在一个表单允许我使用ModelState.AddModelError
?
在@GSerg给我的有用信息之后,我想我应该分享一下我的决心。
因此,而不是在同一个视图中有两个表单,我将每个表单分成两个独立的部分视图,并从主视图中调用每个…
@Html.Action("_RequestPartial")
@Html.Action("_LoginPartial")
每个部分视图将包含要传递给它的模型和一个Html.ValidationSummary()
内部的Html.BeginForm
。
然后在控制器中,设置代码以正常返回视图(在本例中为索引视图)…
[HttpGet]
public ActionResult Index()
{
return View();
}
然后对于部分视图,为每个部分视图设置一个PartialViewResult
,用ChildActionOnly
注释…
[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