1

これはスタックオーバーフローに関する私の最初の質問です。何か不足している場合は親切にしてください。2 つのフォームがあり、それぞれが独自のアクション (データ変更用) にリンクされており、1 つのビューにまとめられています。現在、パーシャルと、フォームに割り当てられた 2 つのモデルで構成される親モデルを使用しています。

私の主なビューは次のようになります。

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

2 つの部分ビューのそれぞれについて、検証の概要情報が 2 回表示されます (非常に似ています)。検証情報は、2 つの子モデルのそれぞれではなく、親モデルに関連付けられているようです。

@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 に答える