【问题标题】:Get SelectedValue from List<SelectListItem> DDL从 List<SelectListItem> DDL 中获取 SelectedValue
【发布时间】:2016-09-27 18:40:10
【问题描述】:

如果我有这样的方法:

public static List<SelectListItem> lstPassFail()
{
    List<SelectListItem> lstPossiblePassFail = new List<SelectListItem>()
    {
        new SelectListItem() { Text = "Pass", Value = "Pass" },
        new SelectListItem() { Text = "Fail", Value = "Fail" },
    };

    return lstPossiblePassFail;
}

然后在我的 Edit Action 我这样做:

ViewBag.PassFail = ClassName.lstPassFail();

然后在我的 Edit View 我这样做:

@Html.DropDownList("PassFail", (List<SelectListItem>)ViewBag.PassFail, "-- Please Select a Result --", htmlAttributes: new { @class = "form-control" } )

由于该记录已经存在于数据库中并且该字段已经有一个值,我如何显示该选定值,而不是 DDL 默认选择第一个选项?

我知道您可以使用 SelectList 的重载方法来做到这一点,但这可以按照我上面描述的方式完成吗?

感谢任何帮助。

【问题讨论】:

  • 使用具有名为PassFail 的属性的模型而不是ViewBag
  • 有什么理由不使用@Html.DropDownListFor
  • @JamieD77 我想通了。我发布了我的答案
  • @GSerg 我想通了。我发布了我的答案
  • 这是一个不使用 ViewBag,而是使用视图模型和 DropDownListFor 辅助方法的解决方案。 What is the best ways to bind @Html.DropDownListFor in ASP.NET MVC5?

标签: asp.net-mvc html-select selectedvalue


【解决方案1】:

我已经想通了。

我变了:

ViewBag.PassFail = ClassName.lstPassFail();

ViewBag.PassFail = new SelectList(ClassName.lstPassFail(), "Value", "Text", chosenWTest.PassFail);

然后在我看来,我将下拉列表更改为此

@Html.DropDownList("PassFail", null, "-- Please Select a Result --", htmlAttributes: new { @class = "form-control" } )

这保存了该记录中该字段的值。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多