1

我正在研究MVC4using @Html.EditorForModel()它显示dropdownlist为文本框,我想Dropdown通过设置任何attribute覆盖模板来显示列表。请为此分享我的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")
}

提前致谢。

4

2 回答 2

4

您可以定义一个表示下拉列表的视图模型:

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)

这几乎就是所有需要的。

于 2013-07-20T08:59:03.587 回答
-1

这是覆盖模板的必要条件吗?你可以使用@Html.DropDownList()助手。

在 asp.net 网站上有一个完整的使用示例,您可以下载该项目:这里

于 2013-07-20T08:27:37.443 回答