在这篇文章中也讨论了同样的问题:MVC视图中的多种表单: ModelState应用于所有表单。
我跟踪了文章,并在同一视图上有几个表单,自定义编辑器模板,创建和注册了自定义模型绑定。这是伴随的要点。
当我在PasswordEditorViewModel.cshtml编辑器模板中使用Html.ValidationResultFor()助手时,我得到了所需的结果:
<li class="error">@Html.ValidationMessageFor(i => i.OldPassword)</li>
<li class="error">@Html.ValidationMessageFor(i => i.NewPassword)</li>
<li class="error">@Html.ValidationMessage("PasswordChangeError.WrongPassword")</li>这段代码准确地返回了我发布的表单的验证错误。
另一方面,当我在同一个编辑器模板中使用Html.ValidationSummary()助手时,验证结果会传播到所有表单,尽管我只发布了一个:

这是正常的行为吗?还是我在密码里漏掉了什么?
发布于 2016-01-27 08:44:04
当使用@Html.ValidationSummary时,它不记得是从哪个发布的,以及通过哪个提交按钮。我过去处理这件事的方式是
<input type="submit" value="button1" />
@if (Request["button1"] != null)
{
@Html.ValidationSummary()
}
<input type="submit" value="button2" />
@if (Request["button2"] != null)
{
@Html.ValidationSummary()
}https://stackoverflow.com/questions/35032339
复制相似问题