【发布时间】:2014-06-02 17:35:32
【问题描述】:
在我的项目中,Html.DropdownList 无法显示其选定的值。它显示了列表的初始值。我的控制器和视图代码如下:
控制器:
public ActionResult Edit(int id = 0)
{
PERMISSION permission = permissionManager.Find(id);
ViewBag.MODULE_ID = new SelectList(moduleManager.GetAll(), "ID", "TITLE",permission.MODULE_ID);
return View(permission);
}
查看:
@Html.DropDownList("MODULE_ID", (IEnumerable<SelectListItem>)@ViewBag.MODULE_ID, new { @class = "form-control" })
但如果我写:
@Html.DropDownList("MODULE_ID", String.Empty)
它工作正常。但我必须添加 class="form-control"。应该是什么解决方案?
更新:
我已将 ViewBag 名称从 ViewBag.MODULE_ID 更改为 ViewBag.ModuleList。它可能与下拉列表的名称冲突。现在它工作正常。
【问题讨论】:
-
究竟是什么不工作?是否没有显示任何值,或者只是它最初没有选择您期望的元素?你的调试器告诉你什么?
-
显示列表的初始值。不是选定的。
-
ID和TITLE的类型是什么。int和string? -
使用调试器检查新创建的 SelectList。检查正确的 SelectListItem 是否将其 Selected 属性设置为 true。
-
那么应该工作。您确定这根本不是使用
Ctrl-F5的情况吗?
标签: asp.net-mvc html.dropdownlistfor selected