1

这是我关于stackoverflow的第一个问题,所以如果我遗漏了什么,请善待。我有两种形式,每一种都链接到自己的操作(用于数据修改),并结合在一个视图中。目前,我正在使用部分模型和一个父模型,它由分配给表单的两个模型组成。

我的主视图看起来有点像这样:

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

}

如何获得每个表单/模型的单独验证摘要?

4

1 回答 1

0

@Html.ValidationSummary()只是一个总结。它实际上是模型上的错误列表。所以我相信每个模型都应该有自己的总结(对此不确定)。

我相信您会得到重复的摘要,因为您有这一行:@Html.ValidationSummary()在每个部分视图中的每个表单中。每次你有这一行时,它都会将整个摘要打印到页面上。您可以使用一些标志更改摘要的粒度,但也有使用整个摘要的替代方法,例如@Html.ValidationMessage().

希望有帮助!

于 2013-02-15T16:10:50.827 回答