これは私のモデルです:
public class MyModel{
public string Name { get; set; }
public string listType { get; set; }
public string SelectedItem { get; set; }
}
私は部分的な見方をしています:
@model List<MyModel>
@{
SelectListItem iEqualTo = new SelectListItem { Text = "Equel To", Value = "EqualTo" };
SelectListItem iNotEqualTo = new SelectListItem { Text = "Not Equal To", Value = "NotEqualTo" };
SelectListItem iGreaterThan = new SelectListItem { Text = "Greater Than", Value = "GreaterThan" };
SelectListItem iLessThan = new SelectListItem { Text = "Less Than", Value = "LessThan" };
SelectListItem iBetween = new SelectListItem { Text = "Between", Value = "Between" };
List<SelectListItem> MyFirstList = new List<SelectListItem>() {
iEqualTo, iNotEqualTo, iGreaterThan, iLessThan, iBetween
};
List<SelectListItem> MySecondList = new List<SelectListItem>() {
iEqualTo, iNotEqualTo
};
}
@foreach(var item in Model) {
if(item.listType =="Firsttype"){
<span> @Html.DropDownList(item.Name , MyFirstList) </span>
} else {
<span> @Html.DropDownList(item.Name , MySecondList) </span>
}
}
だから私Selected = true
はそのアイテムList<SelectListItem>
にDropDownList
等しい名前が必要MyModel.SelectedItem
ですか?あなたの提案は何ですか?実際には、私のビューにはもっと多くの制限があり、モデル プロパティとして渡すことができずSelectListItem
、ビューで処理する必要があります。ラムダインラインで処理することを考えていますが、可能かどうかはわかりません。次のようなものです。List<SelectListItem>
List<SelectListItem>
@Html.DropDownList(item.Name , MySecondList.each(a=> if (a.ToString() == item.SelectedItem) {a.Selected = true})
これを行う方法はありますか?インラインラムダを使用するのが間違っている場合、これを処理する他の方法はありますか?