3

ユーザーモデルに基づいてログインページを作成しました。ユーザーにはユーザー名とパスワード(電子メールアドレスなど)以外に追加の必須フィールドがありますが、ログイン用のユーザー名とパスワードのみを表示しています。

問題は、ユーザー名やパスワードを空のままにすると、ModelStateがModelクラス内のすべてのフィールドに対してエラーメッセージを受け取り、誤解を招く検証メッセージが表示されることです。

ビューのコードは次のとおりです。

<div class="form-login">
@using (Html.BeginForm())
{
    <h2 class="form-signin-title">Login</h2>
    <div class="editor-label">
        @Html.LabelFor(model => model.Username)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Username)
        @Html.ValidationMessageFor(model => model.Username)
    </div>

    <div class="editor-label">
        @Html.LabelFor(model => model.Password)
    </div>
    <div class="editor-field">
        @Html.PasswordFor(model => model.Password)
        @Html.ValidationMessageFor(model => model.Password)
    </div>
    <button class="btn btn-medium btn-primary" type="submit">Login</button>
}

検証の概要は_Layoutの一部であり、モデルが無効な場合にのみ表示されます。

画面上のコントロールの検証の概要のみを表示する方法はありますか?

4

1 に答える 1

1

asp.net MVC検証でビューモデルが検証されるため、検証エラーメッセージが表示されます。したがって、モデル全体が検証されるため、ビューにフィールドを表示するかどうかは関係ありません。表示されたフィールドのみを含むこのフォーム専用のビューモデルを使用する必要があります。

于 2013-02-28T08:57:05.067 に答える