Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC3模型-如何使editorfor成为一个下拉列表?_Asp.net Mvc_Asp.net Mvc 3_Razor - Fatal编程技术网

Asp.net mvc MVC3模型-如何使editorfor成为一个下拉列表?

Asp.net mvc MVC3模型-如何使editorfor成为一个下拉列表?,asp.net-mvc,asp.net-mvc-3,razor,Asp.net Mvc,Asp.net Mvc 3,Razor,我正在制作一个MVC4网络应用程序,供两所大学的同龄人使用,稍后我将扩展到其他学校。在我的模型中,我目前有 public string school { get; set; } 我希望我这样做的时候 @Html.EditorFor(model => model.school) 这将是“学校1”和“学校2”的下拉列表 我怎样才能干净利落地做这件事呢?如果可以,我希望能够在模型中进行更改,而不必在视图中执行任何操作,只需调用@Html.EditorFor即可。如

我正在制作一个MVC4网络应用程序,供两所大学的同龄人使用,稍后我将扩展到其他学校。在我的模型中,我目前有

       public string school { get; set; }
我希望我这样做的时候

       @Html.EditorFor(model => model.school)
这将是“学校1”和“学校2”的下拉列表


我怎样才能干净利落地做这件事呢?如果可以,我希望能够在模型中进行更改,而不必在视图中执行任何操作,只需调用@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)

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

@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" })
@Html.DropDownListFor(model=>model.Status,新列表
{
新建SelectListItem{Text=“new”,Value=“new”},
新建SelectListItem{Text=“InProcess”,Value=“InProcess”},
新建SelectListItem{Text=“Completed”,Value=“Completed”},
新建SelectListItem{Text=“Rejected”,Value=“Rejected”},
},“选择状态”,新建{@class=“form control select2\u demo\u 4”})

这肯定会对您有所帮助,当您选择任何一个模型时,您都可以从模型中获得价值。

感谢您的帮助。为了确保我理解,我应该把所有这些都放在你的视野中,是吗?是的,这应该放在你的视野中。它使用Razor语法。您可能希望将可能的项目列表移动到控制器中,并将其放入viewmodel中。但是为了快速演示,这很好:)尝试更改SelectListItem的文本和值属性