MVC3模型 - 如何使它成为一个下拉列表?

时间:2012-05-03 06:06:42

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

我正在为2所大学的同学制作一个MVC4 webapp,后来我将扩展到其他学校。在我的模型中,我目前有

       public string school { get; set; }

当我这样做时,我会这样做

       @Html.EditorFor(model => model.school)

这将是“学校1”和“学校2”的下拉。

我怎样才能干净利落地做到这一点?如果可以,我希望能够在模型中进行更改,除了调用@ Html.EditorFor之外,不必在视图中执行任何操作。如果实现这一目标的唯一方法是在视图中执行某些操作,那也没关系。

2 个答案:

答案 0 :(得分:4)

您可以使用Html.EditorFor

代替Html.DropDownListFor
@{
   var items = new SelectList(new[]
                   {
                       new SelectListItem {Text = "School1", Value = "School1"},
                       new SelectListItem {Text = "School2", Value = "School2"},
                   }, "Text", "Value");
}

@Html.DropDownListFor(x => x.school, @items)

答案 1 :(得分:0)

您可以使用以上代码,也可以在页面中使用此代码。

@Html.DropDownListFor(model => model.Status, new List<SelectListItem>
                    {
                       new SelectListItem{ Text="New", Value = "New" },
                       new SelectListItem{ Text="InProcess", Value = "InProcess" },
                       new SelectListItem{ Text="Completed", Value = "Completed" },
                       new SelectListItem{ Text="Rejected",Value="Rejected"},

                    }, "Select Status", new { @class = "form-control select2_demo_4" })

这肯定会帮助您,选择任何模型都可以在模型中获得价值。