2

私はこのようなnull許容型の列挙型を含むビューモデルを持っています:

public StudyLevel? studyLevel { get; set; }

列挙型をビューにレンダリングするためのドロップダウンリストを表示するカスタムhtmlヘルパーを作成しました。null許容のケースは次を使用して表示されます。

<option value="null">No value</option>

問題は、フォームmodelstateを送信すると、エラーが発生することです。

studylevel cannot be "null" .

ビューでnull許容型を処理するのに役立つ方法を教えてください。

4

2 に答える 2

2

私は間違っているかもしれませんが、null許容列挙型とMVCデフォルトモデルバインダーにはいくつかの制限があると確信しています。代わりに「値なし」を表す状態にすることをお勧めします。

StudyLevel.None

nullそうすれば、チェックなどを行う必要がなくなります。

于 2012-12-14T10:45:35.787 に答える
1

このようにnull値を表示するようにhtmlヘルパーを変更するとどうなりますか?

<option>No value</option>

またはこのように?

<option value="">No value</option>

編集:より良いオプション(IMO)は、のコレクションを作成してからSelectListItem、組み込みのHTMLヘルパーを使用することです。私が数ヶ月前に作成したこの記事を見てください、それはあなたを助けるかもしれません。次のように使用できます。

@Html.EnumDropDownList<StudyLevel?>("studyLevel", "No value")

詳細はこちら:

ASP.NET MVC:列挙型のローカライズされたDropDownListを作成する

于 2012-12-14T11:02:07.710 に答える