我的某个编辑页面上有一个非常奇怪的问题。下面的下拉列表永远不会得到所选的值。
@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">µl</option>
<option value="ml">ml</option>
<option value="l">l</option>
<option value="µg/ml">µg/ml</option>
</select>
为什么第二个渲染正确而第一个没有?请帮帮....
答案 0 :(得分:2)
解决方案是将ViewBag.Bodymaterial
属性更改为ViewBag.Bodymaterials
。当Viewbag属性名称与模型属性名称匹配时,Html.DropDownListFor以某种方式无法理解它。
所以解决方案是。确保您的Viewbag属性与您的modelproperty不同。希望这能为你们节省很多时间......