下拉列表中已定义的值MVC2

时间:2011-07-12 13:28:31

标签: asp.net-mvc asp.net-mvc-2 drop-down-menu

我正在尝试为C#ASP.NET MVC2创建一个预定义的下拉列表。我对如何完成这件事很困惑......男孩我们在vanilla asp.net中做得很简单......

但是,假设我希望下拉列表中包含简单的文字,例如......宝马,奥迪,梅赛德斯,以及1,2,3等甚至“好”,“更好”,“最佳”等值。 ..如何在控制器中创建下拉列表,如何将其添加到视图中?

我现在所拥有的是

    List<SelectListItem> MRNList = new List<SelectListItem>
    {
        new SelectListItem  { Text = "BMW", Value = "good", Selected = false},
        new SelectListItem  { Text = "Audi", Value = "better"},
        new SelectListItem  { Text = "Mercedes", Value = "Best"},                
    };
    ViewData["MRNDROPDOWNLIST"] = MRNList.AsEnumerable();.

在我看来,我有......

    <%:Html.DropDownListfor("MRN", ViewData["MRNDROPDOWNLIST"]) %>

我在这里缺少什么?我从Visual Studio得到编译时错误告诉我,我不能这样做?但DropDownList的参数肯定说你可以使用一个IEnumerable列表填充该参数?我知道我在这里遗漏了一些明显的东西......不确定它到底是什么......我会继续寻找,但如果你们中有任何人有任何线索,我一定会很感激。

德里克

1 个答案:

答案 0 :(得分:1)

ViewData["MRNDROPDOWNLIST"]属于object类型,您需要将其转换为正确的类型才能使错误消失,在本例中为List<SelectListItem>

<%:Html.DropDownListfor("MRN", (List<SelectListItem>)ViewData["MRNDROPDOWNLIST"])%>