16

この問題に関連する多くの質問と回答が見つかりましたが、何もうまくいきませんでした

このようなドロップダウンリストを作成しています

@Html.DropDownListFor(m => m.SchoolYears, new SelectList(Model.SchoolYears, "YearId", "StartDates", Model.CurrentYearId), new { @class = "field_Dropdown", style = "width:100px;",onchange="return searchStudents();" })

(Model.CurrentYearIdはタイプですint)

ただし、現在の年を選択することはできません。

この投稿から、選択した値に文字列を使用する必要があることがわかりました(ただし、選択した値にオブジェクトを許可するため、理由はわかりません)

DropDownList SelectListのSelectedValueの問題

だから私はこれらすべてのバリエーションを試しました

new SelectList(Model.SchoolYears, "YearId", "StartDates", Model.CurrentYearId.ToString())

new SelectList(Model.SchoolYears, "YearId", "StartDates", 2)

new SelectList(Model.SchoolYears, "YearId", "StartDates", "2")

しかし、それらは機能しませんでした。

linq クエリまたは foreach ループを介して選択リストを作成し、各項目の選択されたプロパティをマークする方法がありますが、上記が機能しないのはなぜですか?

4

2 に答える 2

24

問題が見つかりました。

私がやっていた間違いはこれを使っている

m => m.SchoolYears // m.SchoolYears in a list of string

これに変えたら

m => m.SelectedYearId // m.SelectedYearId is an integer property

それは魅力のように機能したので、ついにこれが機能しました

@Html.DropDownListFor(m => m.SelectedYearId, new SelectList(Model.SchoolYears, "YearId", "StartDates", Model.CurrentYearId), new { @class = "field_Dropdown", style = "width:100px;",onchange="return searchStudents();" })

ありがとう!

于 2013-05-17T08:16:27.610 に答える