いつもDropDownListFor
こんな感じで使ってます
Html.DropDownListFor(m => m.PropertyOfTheModel, SelectionList)
これは、ドロップダウン リストを作成しようとしているプロパティの正確な名前 (この場合は ) を知っている限り、問題なく機能しますPropertyOfTheModel
。
今、私には別の仕事があります。object
私のモデルには、 として宣言され、 と呼ばれる固定プロパティが含まれていますFormModel
。リフレクションを使用して、に含まれるすべてのプロパティのドロップダウンを作成したいとしFormModel
ます。部分を解決できた属性のおかげでSelectionList
、最初の引数を記述しなければなりませんが、その方法がわかりません。
foreach (var property in Model.FormModel.GetType().GetProperties())
{
@Html.DropDownListFor(m => m.FormModel.GetType().GetProperty(property.Name), SelectList)
}
上記のコードが機能しません。どのように記述すればよいですか? 私はラムダ式を書いた経験がありません:selected
プロパティと選択リストを渡すだけで正しい属性を自動的に取得するドロップダウンリストを生成する代替手段はありますか? それとも式を書く必要がありますか?ありがとう!
これは私が得るエラーです:
テンプレートは、フィールド アクセス、プロパティ アクセス、単一次元の配列インデックス、または単一パラメーターのカスタム インデクサー式でのみ使用できます。