1

ユーザーにさまざまな検証メッセージを表示したいと思います。1つは検証メッセージリストにあり、もう1つは私の編集ボックスの近くにあります。コードで見てみましょう:
私のモデル:

[StringLength(10, ErrorMessage = "{0} cannot be more than {1} characters.")]
string Name { get; set; }

ビューで:

@* in form *@

@*
My long message is here:
"Name cannot be more than 10 characters."
*@
@Html.ValidationSummary(false)

@*
And my short validation message is here:
"*"
*@
@Html.TextBoxFor( m=> m.Name)
@Html.ValidationMessageFor(m => m.Name)
@*
But this validation message must be "*" instead of "Name cannot be more than 10 characters."
*@

また、使用@Html.ValidationMessageFor(m => m.Name, "ShortMessage")しましたが、動作しませんでした。ページが読み込まれるとすぐに「ShortMessage」が表示されます。検証が失敗した後ではありません。

これを達成する方法は?私はMVC4を使用しています。
どんな助けでもいただければ幸いです。

4

3 に答える 3

3

それ以外の

@Html.ValidationMessageFor(m => m.Name)

使用する

@Html.ValidationMessage("Name", "*")

これにより、ビューで直接メッセージ(この場合はアスタリスク)を指定できます。

于 2012-11-12T18:13:05.430 に答える
1

site.cssが必要な理由は、検証の概要と検証メッセージがCSSで非表示/非表示になっているためです。site.cssを開くと、次のように表示されます。

/* styles for validation helpers */
.field-validation-error {
color: #e80c4d;
font-weight: bold;
}

.field-validation-valid {
display: none;
}

input.input-validation-error {
border: 1px solid #e80c4d;
}

input[type="checkbox"].input-validation-error {
border: 0 none;
}

.validation-summary-errors {
color: #e80c4d;
font-weight: bold;
font-size: 1.1em;
}

.validation-summary-valid {
display: none;
}

site.cssを使用していない場合(私が持っている場合のように、プロジェクトを継承する場合)、これらのスタイルを導入する必要があります。

それでも失敗する場合は、バックエンドでModelStateを確認してください。IsValidプロパティがfalseの場合、メッセージが表示されます。

于 2015-06-01T09:27:47.093 に答える
0
@Html.ValidationMessageFor(m => m.Name, "*")

これは、見出しセクションに「Site.css」cssファイルを含めた後に機能しました。検証を使用する前に、「site.css」スタイルのクラスに保険をかける必要があります。

于 2012-11-14T13:44:35.483 に答える