【问题标题】:MVC3 DropDownlistFor SelectedValueMVC3 DropDownlistFor SelectedValue
【发布时间】:2011-08-03 10:09:23
【问题描述】:

我的一个编辑页面上有一个非常奇怪的问题。下面的下拉菜单永远不会得到选定的值。

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

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

【问题讨论】:

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


    【解决方案1】:

    解决方案是将ViewBag.Bodymaterial 属性更改为ViewBag.Bodymaterials。当您的 Viewbag 属性名称与模型属性名称匹配时,Html.DropDownListFor 不知何故无法理解它。

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

    【讨论】:

    • 非常感谢。一个简短的说明...我被咬了,因为我的一个类上有一个名为 Title 的属性,结果与自动生成的 cshtml 文件顶部的标准 ViewBag.Title = "MyTitle" 冲突。我花了几个小时才弄明白,但感谢你的帖子,我做到了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多