【问题标题】:Setting a default selected value in DropDownList in MVC3在 MVC3 的 DropDownList 中设置默认选定值
【发布时间】:2013-04-24 06:46:12
【问题描述】:

在 MVC3 中,我的控制器中有此代码。它从 Installation 表中检索 IDs\Names 列表并创建一个 ViewBag

var vs = dba.Installation.OrderBy(q => q.InstName).ToList();
ViewBag.Vessels = new SelectList(vs, "InstId", "InstName");

现在,在我看来。我想在下拉列表中呈现列表。我使用了可以正常工作的 Html 助手...

@Html.DropDownList("InstId",(SelectList)ViewBag.Vessels, "- Select one -")

我需要将 ViewBag 列表中的第一项设置为默认选择值,而不是“- 选择一个 -” 文本。

我该怎么做?

提前致谢!

【问题讨论】:

    标签: asp.net-mvc-3 html-helper html-select


    【解决方案1】:

    SelectList 构造函数有一个重载,它接受 4 个参数。最后一个是默认选择的对象。例如:

    ViewBag.Vessels = new SelectList(vs, "InstId", "InstName", selectedValue);
    

    selectedValue 是列表中任何类型的对象。

    【讨论】:

    • 感谢@WheretheresaWill。我的天啊!我没有意识到超载。愚蠢的我。
    【解决方案2】:

    我需要将 ViewBag 列表中的第一项设置为默认选中 值,而不是“-选择一个-”文本。

    然后您需要选择列表中的第一项 (vs) 并获取它的 id 并将其用作 SelectList 中的selecedValue:

    ViewBag.Vessels = new SelectList(vs, "InstId", "InstName", 
        vs.FirstOrDefault().InstId);
    

    【讨论】:

      【解决方案3】:

      你也可以为 Dropdownlist 创建一个 Helper 类 它将有一种方法将文本设置为解决方案中每个下拉列表的默认文本

      【讨论】:

      • 感谢@K2_Ketu,但正如 WheretheresaWill 所说,有一个包含此选项的重载。
      猜你喜欢
      • 2010-09-23
      • 1970-01-01
      • 1970-01-01
      • 2014-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-11
      • 2021-10-30
      相关资源
      最近更新 更多