2013-05-17 14 views
9

のために働いていない私は、この問題に関連する多くの質問と回答を見つけましたが、何も私のため選択された値がSelectListの

を働いていない私は(Model.CurrentYearIdがタイプintである)この

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

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

しかし、今年は選択されません。このポストから

、私は(それが選択した値のオブジェクトを可能にするので、私は理由を知りませんが)私たちが選択した値のため

DropDownList SelectList SelectedValue issue

を文字列を使用する必要があることを得たので、私はこれらすべてのバリエーションを試してみました

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

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

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

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

linq queryまたはforeachループで選択リストを作成し、各アイテムの選択したプロパティにマークを付ける方法がありますが、上記の理由が機能しないのはなぜですか?

答えて

21

問題が見つかりました。

私はそれが魅力のように働いたこの

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

にそれを変更したとき、私はこの

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

を使用しているやっていたのミスなので、最終的に私はこの作業をしている

ありがとう!

+4

何らかの理由で何かがうまくいかない.. –

+0

文字列IDが必要な場合はどうすればよいですか? – Zapnologica

+1

私はMVC5を使用していますが、まだ同じ問題があります –

0

解決策は私には役に立たなかった。 ViewBagプロパティ名とモデルプロパティ名が同じであれば、選択されたプロパティは機能しません。

関連する問題