我正在使用@ Html.EditorForModel()处理MVC4,它将dropdownlist显示为文本框,我想通过设置任何属性和覆盖模板来显示Dropdown列表.请分享我的MVC4示例.
@model Models.Employee @{ ViewBag.Title = "Create"; } <h2>Create</h2> @using (Html.BeginForm()) { @Html.AntiForgeryToken() @Html.ValidationSummary(true) <fieldset> <legend>Employee</legend> @Html.EditorForModel() <p> <input type="submit" value="Create" /> </p> </fieldset> } <div> @Html.ActionLink("Back to List","Index") </div> @section Scripts { @Scripts.Render("~/bundles/jqueryval") }
提前致谢.
解决方法
您可以定义一个代表下拉列表的视图模型:
public class Itemsviewmodel { public string SelectedValue { get; set; } public IEnumerable<SelectListItem> Values { get; set; } }
将在主视图模型中使用:
public class Myviewmodel { public Itemsviewmodel DropDown1 { get; set; } public Itemsviewmodel DropDown2 { get; set; } ... }
现在剩下的就是为Itemsviewmodel编写一个自定义编辑器模板,该模板应该放在〜/ Views / Shared / EditorTemplates / Itemsviewmodel.cshtml中.请注意,模板的名称和位置很重要:
@model Itemviewmodel @Html.DropDownListFor(x => x.SelectedValue,Model.Values)
这就是它所需要的一切.