2011-08-03 17 views
1

私の編集ページの1つに本当に奇妙な問題があります。以下のドロップダウンは選択された値を決して得られません。MVC3 DropDownlistFor SelectedValue

ただし、同じページで次のドロップダウンが選択された値を取得します。

@Html.DropDownListFor(model => model.Unit, (IEnumerable<SelectListItem>)ViewBag.Units) 

最初のものはこのようにレンダリングされます。

<select id="Bodymaterial" name="Bodymaterial"> <option value="EDTA">EDTA</option> <option value="SWAB">SWAB</option> <option value="UR">UR</option> <option value="FAE">FAE</option> <option value="IOF">IOF</option> <option value="SKIN">SKIN</option> <option value="HEP">HEP</option> <option value="CLOT">CLOT</option> <option value="CIT">CIT</option> <option value="CRM">CRM</option> <option value="CSF">CSF</option> <option value="RNA">RNA</option> <option value="MILK">MILK</option> <option value="BUC">BUC</option> </select>

第二には、それがなければならないようにレンダリングされます。

<select data-val="true" data-val-required="The Unit field is required." id="Unit" name="Unit"><option selected="selected" value="µl">&#181;l</option> <option value="ml">ml</option> <option value="l">l</option> <option value="µg/ml">&#181;g/ml</option> </select>

なぜもう一つは正しいレンダリングさ最初のではありませんか?助けてください....

答えて

2

解決策はViewBag.BodymaterialプロパティをViewBag.Bodymaterialsに変更することです。何とかHtml.DropDownListForは、あなたのViewbagプロパティ名がモデルプロパティ名と一致したときに何かを理解しません。

解決策は次のとおりです。 Viewbagプロパティが、あなたのmodelプロパティと同じでないことを確認してください。これはあなたに多くの時間を節約することを願っています....

+0

ありがとうございます。ワン・クイック・メモ...自動生成されたcshtmlファイルの最上部にある標準のViewBag.Title = "MyTitle"と競合しているクラスの1つで、タイトルと呼ばれるプロパティがあるために噛まれました。それを理解するのに何時間もかかりましたが、あなたの投稿に感謝しました。 – jwalkerjr