【问题标题】:Html.Dropdownlist selected value not workingHtml.Dropdownlist 选定的值不起作用
【发布时间】: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。它可能与下拉列表的名称冲突。现在它工作正常。

【问题讨论】:

  • 究竟是什么不工作?是否没有显示任何值,或者只是它最初没有选择您期望的元素?你的调试器告诉你什么?
  • 显示列表的初始值。不是选定的。
  • IDTITLE的类型是什么。 intstring?
  • 使用调试器检查新创建的 SelectList。检查正确的 SelectListItem 是否将其 Selected 属性设置为 true。
  • 那么应该工作。您确定这根本不是使用Ctrl-F5 的情况吗?

标签: asp.net-mvc html.dropdownlistfor selected


【解决方案1】:

我已将 ViewBag 名称从 ViewBag.MODULE_ID 更改为 ViewBag.ModuleList。它可能与下拉列表的名称冲突。现在它工作正常。

【讨论】:

    【解决方案2】:

    您在错误的参数中添加了form-control 类。目前它被添加为选项标签。

    使用这个:

    @Html.DropDownList("MODULE_ID", (IEnumerable<SelectListItem>)@ViewBag.MODULE_ID, "-- Select --",  new { @class = "form-control" })
    

    附带说明,您应该考虑使用 ViewModel 类并取消魔术字符串 "MODULE_ID"ViewBag 魔术属性。 ViewModel 类允许您在不强制转换的情况下强命名事物,如下所示:

    @Html.DropDownListFor(model => model.MODULE_ID, Model.Modules, "-- Select --", new { @class = "form-control" })
    

    这是一个微妙的变化,但一切都是编译时检查的。

    【讨论】:

    • 如果我添加选项标签。它显示标签“--Select--”而不是选定的值。
    • 那只是因为当时没有设置任何值。如果您的new SelectList(..., 47) 工作正常,当您在浏览器中查看页面源代码时,它应该有一个&lt;option value="47" selected="selected"&gt;My Module&lt;/option&gt;。如果没有,则选择第一个选项。
    • 我再次调试程序。我发现selectList的选择值为51,这是一个有效值。但是在视图页面中它无法显示选择的值。但是如果我写了 :@Html.DropDownList("MODULE_ID", String.Empty) 。它会显示选定的值。 :(
    • 当您使用moduleManager.GetAll()ViewBag.MODULE_ID 时,HTML 中是否有&lt;option value="51"&gt;51's Title&lt;/option&gt;
    • 我在我的 html 中找到:。 :|
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 2013-11-03
    • 2011-12-26
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多