Asp.net mvc MVC3模型-如何使editorfor成为一个下拉列表?
我正在制作一个MVC4网络应用程序,供两所大学的同龄人使用,稍后我将扩展到其他学校。在我的模型中,我目前有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即可。如
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的文本和值属性