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 ?

ASP.Net MVC使用AddModelError和多个ValidationSummary进行查询字符串验证

在@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

相关文章:
  • 没有找到相关文章