这是我关于stackoverflow的第一个问题,所以如果我错过了什么,请好心。 我有两个表单,每个表单链接到自己的操作(用于数据修改)组合在一个视图中。目前,我正在使用partials和一个父模型,它由分配给表单的两个模型组成。
我的主视图看起来有点像这样:
@model ReportingUploadPortal.Models.ManageUserDataModel
@Html.Partial("_ChangePasswordPartial", Model.PasswordModel)
@Html.Partial("_ChangeEMailPartial",Model.EmailModel)
我的父模型是:
public class ManageUserDataModel
{
public ChangeEmailModel EmailModel { get; set; }
public LocalPasswordModel PasswordModel { get; set; }
}
对于我的两个部分视图(它们非常相似),我得到两次显示的验证摘要信息。似乎验证信息与父模型相关联,而不是与两个子模型中的每一个相关联。
@using (Html.BeginForm("ChangeEmail", "Account")) {
@Html.AntiForgeryToken()
@Html.ValidationSummary()
<fieldset>
<legend>Change your email</legend>
<ol>
<li>
@Html.LabelFor(m => m.EMail)
@Html.TextBoxFor(m => m.EMail)
</li>
<li>
@Html.LabelFor(m => m.ConfirmEMail)
@Html.TextBoxFor(m => m.ConfirmEMail)
</li>
</ol>
<input type="submit" value="Change email" />
</fieldset>
}
如何为每个表单/模型获得单独的验证摘要?
答案 0 :(得分:0)
@Html.ValidationSummary()
就是摘要。它实际上是模型上的错误列表。所以我相信每个模型都应该有自己的总结(不确定)。
我相信您会收到重复的摘要,因为您在每个局部视图中的每个表单中都有以下行:@Html.ValidationSummary()
。每次有这行时,它都会将整个摘要打印到页面。您可以使用一些标志更改摘要的粒度,但也可以使用整个摘要的替代方法,例如@Html.ValidationMessage()
。
希望有所帮助!