[解決済み] Html.EnumDropdownListFor: デフォルトのテキストを表示する
2022-02-05 23:29:09
質問
私のビューでは enumdropdownlist (Asp.Net MVC 5.1 の新機能) を使用します。
@Html.EnumDropDownListFor(m => m.SelectedLicense,new { @class="form-control"})
上記のコードを実行すると、以下のenumのドロップダウンリストが表示されます。
public enum LicenseTypes
{
Trial = 0,
Paid = 1
}
しかし、デフォルトでは、ドロップダウンリストに値(カスタムテキスト)を持たせたいのです。 そして、これは私が試したものです。
@Html.EnumDropDownListFor(m => m.SelectedLicense,"Select a license" ,new { @class="form-control"})
しかし、問題は、これを実行すると、ドロップダウンリストが次のように表示されることです。 つまり、表示させたいテキストがデフォルトでは表示されないのです。 ユーザーが "select a license" を選択してフォームを送信しようとすると、 "select a license" というエラーは表示されますが、デフォルトテキストとしては表示されません。 何か変更する必要があるのでしょうか?
Ps: 画像はページを読み込んだ時のスクリーンショットです。デフォルトでは、Trialが選択されているように表示されます。
解決するには?
を変更してみてください。
Index
の
LicenseTypes
から始まる
1
ではなく
0
を以下のようにします。
public enum LicenseTypes
{
Trial = 1,
Paid = 2
}
次に
Range attribute
を使用して、以下のように選択されたライセンスの種類を検証します。
public class YourViewModel
{
//Other properties
[Range(1,int.MaxValue,ErrorMessage = "Select a correct license")]
public LicenseTypes LicenseTypes { get; set; }
}
最後に、あなたの見解で。
@Html.EnumDropDownListFor(m => m.LicenseTypes,"Select a license",new { @class = "form-control"})
@Html.ValidationMessageFor(m => m.LicenseTypes)
関連
-
[解決済み】Excel "外部テーブルが期待された形式ではありません。"
-
[解決済み】ソケットのアドレス(プロトコル/ネットワークアドレス/ポート)は、通常1つしか使用できない?
-
[解決済み】バックスラッシュを含むパス文字列のエスケープシーケンスが認識されない件
-
[解決済み】Unity3DでOnTriggerEnterが動作しない件
-
[解決済み】MetadataException: 指定されたメタデータ・リソースをロードできない
-
[解決済み】WSACancelBlockingCallの例外について
-
[解決済み】別のスレッドがこのオブジェクトを所有しているため、呼び出し側のスレッドはこのオブジェクトにアクセスできない
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015
-
[解決済み] jQueryを使ってドロップダウンリスト(セレクトボックス)から選択されたテキストを取得する
-
[解決済み】テストのInitメソッドでHttpContext.Currentをモックする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
[解決済み】C#におけるtypedefの等価性
-
解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C# [解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C#.
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み】C# - パスに不正な文字がある場合
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?
-
[解決済み] [Solved] .NETでスレッドの終了を待つには?
-
[解決済み] 簡単なHtml.DropDownListFor()の書き方は?
-
[解決済み】値を変更せずにEnum型のデフォルト値を選択する方法