ASP.NET MVC Html.DropDownList所选值不起作用

时间:2017-02-08 04:36:20

标签: c# asp.net-mvc-4 model-view-controller

我正在尝试在Razor文件中添加下拉列表。此下拉列表的列表从控制器传递。 控制器:

    public ActionResult Edit(int id = 0)
    {
        TaskModels task_models = db.Tasks.Find(id);
        listStatusItems.Add(new SelectListItem
        {
            Text = "Open",
            Value = "open"
        });
        listStatusItems.Add(new SelectListItem
        {
            Text = "Close",
            Value = "close"
        });

        listStatusItems.Where(m => m.Value.Equals(task_models.Status, StringComparison.OrdinalIgnoreCase)).FirstOrDefault().Selected = true;
        ViewData["Status"] = listStatusItems;
        return View(task_models);
    }

查看:

@{
var status = (List<SelectListItem>)ViewData["Status"];
}

    <div class="ddl-label">
        @Html.LabelFor(model => model.Status)
    </div>
    <div class="ddl-field">
        @Html.DropDownListFor(model => model.Status, status, "--Select status--")
        @Html.ValidationMessageFor(model => model.Status)
    </div>

我的问题是,在@ Html.DropDownListFor行之前,我可以看到状态列表是正确的。此列表中一个项目的“已选择”字段为“true”。它应该显示在下拉列表中。但是,在@ Html.DropDownListFor行之后,这个“Selected”被设置为“false”。然后,在网页中,下拉列表的值为“ - 选择状态 - ”。我无法弄清楚为什么会发生这种情况。

非常感谢您的帮助。

0 个答案:

没有答案