如何使用ASP.NET MVC 4中的ViewBag创建下拉列表?

时间:2015-03-10 10:32:51

标签: asp.net-mvc-4 html-select html.dropdownlistfor viewbag

这里我有一个模型类..

public class MyDrop
{
    public int id { get; set; }
    public string value { get; set; }
}

在我的控制器中,我使用此代码......

public ActionResult Index(){

    var GenreLst = new List<MyDrop>();

    MyDrop a = new MyDrop();
    a.id = 1;
    a.value = "hello";

    MyDrop b = new MyDrop();
    b.id = 2;
    b.value = "hello2";

    GenreLst.Add(a);
    GenreLst.Add(b);
    ViewBag.ShowDropDown = new SelectList(GenreLst); 


}

然后在我看来,我添加了这段代码......

@Html.DropDownList("ShowDropDown", "All")

运行项目后。它会显示一个下拉列表。 但没有显示正确的值。

在页面源中它喜欢这个....

<select id="ShowDropDown " name="ShowDropDown "><option value="">All</option>
<option>DropDown.Models.MyDrop</option>
<option>DropDown.Models.MyDrop</option>
</select>

我该如何解决这个问题?

我期待这样......

<select id="ShowDropDown " name="ShowDropDown "><option value="0">All</option>
<option value="1">hello</option>
<option value="2">hello2</option>
</select>

请帮助......

1 个答案:

答案 0 :(得分:3)

public ActionResult Index(){

    var GenreLst = new List<MyDrop>();

    MyDrop a = new MyDrop();
    a.id = 1;
    a.value = "hello";

    MyDrop b = new MyDrop();
    b.id = 2;
    b.value = "hello2";

    GenreLst.Add(a);
    GenreLst.Add(b);
    ViewBag.ShowDropDown = new SelectList(GenreLst, "id", "value"); 


}

在您的视图中:

@{
SelectList list = ViewBag.ShowDropDown;
}

@Html.DropDownList("DROPDOWNID", list, "All")