私はMVCにかなり慣れていないので、エディターテンプレートにドロップダウンを設定するための最良の方法を考えていましたか?
たくさんのドロップダウンを持つアプリケーションを構築していますが、それらのドロップダウンのデータは非常に静的です。現在、私はそれらすべてをデータベース内のテーブルに入れてから、それらをセッションにロードします。
次に例を示します。
私の見解:
@{
var widgettypes = Business.MySession.Current.WidgetTypes.ToSelectList(d => d.TypeName,
d => d.WidgetTypeID.ToString(),
" - Select - ");
}
<div class="editor-label">
@Html.LabelFor(model => model.WidgetTypeID)
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.WidgetTypeID, @widgettypes)
@Html.ValidationMessageFor(model => model.WidgetTypeID)
</div>
ドロップダウンヘルパー:
public static List<SelectListItem> ToSelectList<T>(
this IEnumerable<T> enumerable,
Func<T, string> text,
Func<T, string> value,
string defaultOption)
{
var items = enumerable.Select(f => new SelectListItem()
{
Text = text(f),
Value = value(f)
}).ToList();
items.Insert(0, new SelectListItem()
{
Text = defaultOption,
Value = "-1"
});
return items;
}
ここSOで、ビューに選択リストを静的に作成する例をたくさん見てきました。
.netコードの静的列挙型からビューでそれらを作成するのがベストプラクティスですか、それとも現在の方法で作成するのが最善ですか?それともそれは問題ではありませんか?
何がうまくいくのかではなく、自分が何をすべきかを知りたいだけです。