创建List <string>的DropDownListFor?

时间:2016-02-17 23:15:08

标签: asp.net asp.net-mvc razor

我想在Razor视图中创建一个DropDownListFor,显示类型为String的List的数据:

public ActionResult Index()
        {
            List<String> catgs = new List<String>();

            return View(catgs);

}

我无法弄清楚如何在View中接收String类型的模型以及如何编写DropDownListFor。

感谢。

1 个答案:

答案 0 :(得分:0)

为了生成下拉列表,您既需要要绑定的属性,也需要要显示的选项的集合属性。

模型

public class MyModel
{
    public string SelectedValue { get; set; }
    public IEnumerable<SelectListItem> Items { get; set; }
}

控制器

public ActionResult Index()
{
    MyModel model= new MyModel
    {
        Items = new SelectList(new string[]{ "Item 1", "Item 2", "Item 3" })
    };
    return View(model);
}

旁注:如果您想预先选择一个选项,请设置SelectedValue的值,例如SelectedValue = "Item 2"表示将选择2选项。

查看

@model MyModel
....
@Html.DropDownListFor(m => m.SelectedValue, Model.Items, "-Please select-")