MVC3 DropDownlistFor SelectedValue

时间:2011-08-03 10:09:23

标签: asp.net-mvc-3 razor html.dropdownlistfor

我的某个编辑页面上有一个非常奇怪的问题。下面的下拉列表永远不会得到所选的值。

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

但是,同一页面上的以下下拉菜单确实会获得所选值。

    @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>

为什么第二个渲染正确而第一个没有?请帮帮....

1 个答案:

答案 0 :(得分:2)

解决方案是将ViewBag.Bodymaterial属性更改为ViewBag.Bodymaterials。当Viewbag属性名称与模型属性名称匹配时,Html.DropDownListFor以某种方式无法理解它。

所以解决方案是。确保您的Viewbag属性与您的modelproperty不同。希望这能为你们节省很多时间......