2

私はビューを持っています(簡単にするために冗長なコードをスキップします):

@model CompetencyModel
@using (Html.BeginForm())
{
    @Html.ValidationSummary()
    @Html.EditorFor(model => model.Results)
}

送信時に 内で検証が失敗した場合EditorFor、ValidationSummaryはからの各アイテムのすべての検証メッセージのリストを表示EditorForします。

このスクリーンショットはビューで、EditorForはラジオ ボタンのある 1 行です。

ここに画像の説明を入力

しかし、何かが失敗したことを示す単一のエラー メッセージが必要です。私は試した:

@Html.ValidationSummary(true)
@Html.EditorFor(model => model.Results)

しかし、それは何も示していません。私は試した

@Html.ValidationSummary(true)
@Html.EditorFor(model => model.Results)
@Html.ValidationMessageFor(model => model.Results, "ERROR !!!")

しかし、それは何も示していません。

私は何を間違っていますか?ありがとうございました。

解決策 これでうまくいきます。

<style>.validation-summary-errors ul { display: none; }</style>
@Html.ValidationSummary("Can't save, you must answer all questions !!")
4

2 に答える 2

3

ValidationExtensions.ValidationSummary メソッドは、常に項目の順序付けされていないリストを返します。

別の人がこの質問をし、JQuery を使用して項目を非表示にすることを選択しました: https://stackoverflow.com/a/10837702/1220302

別の解決策として、CSS のnth-child疑似タグを使用して、リストの最初の項目のみを表示することができます。もちろん、これは使用しているブラウザのバージョンによって異なります。

私はこのようなことを考えます:

.validation-summary-errors ul li:nth-child(-n+1) {
    display:none;
}
于 2013-02-05T18:35:00.297 に答える