asp.net mvc html下拉列表帮助器没有选择选项

时间:2010-07-04 17:58:14

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

在我的控制器中,我生成了一个SelectList,我将其传递给下拉助手:

  <%= Html.DropDownList("abc123", Model.SomeList) %>

我查看了一个值的查询字符串,这是一个ID。

然后我遍历SelectList中的所有项目,如果它等于ID,我会这样做:

item.Selected = true;

然后,控制器操作将此SelectList传递给视图,然后传递给Html帮助程序。

在调试模式下,我可以看到值设置为true,但html呈现而不选择项目。

问题是什么?

2 个答案:

答案 0 :(得分:2)

我不知道你做错了什么,因为你已经显示了0代码,但这肯定有效:

public ActionResult Index(int? id)
{
    var model = new SelectList(new[]
    {
        new { Id = 1, Name = "item 1" },
        new { Id = 2, Name = "item 2" },
    }, "Id", "Name", id);
    return View(model);
}

并在您看来:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<SelectList>" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    <%= Html.DropDownList("abc123", Model) %>

</asp:Content>

现在,如果您导航到/home/index/1,则会选择第一个项目,如果您导航到/home/index/2所选的第二个项目项目。

此外,如果您使用的是ASP.NET MVC 2.0,我建议使用强类型DropDownListFor帮助程序而不是DropDownList

答案 1 :(得分:0)

这似乎是一个常见的MVC问题:

Html.DropDownListFor not behaving as expected ASP.net MVC