0

我刚刚开始学习 ASP.Net 技术,并在 Microsoft 的有趣教程上停下来。这是链接。他们在其中添加和填充下拉列表的一部分,我不明白如何。当我完全按照他们的方式做时,我没有得到那个下拉列表。请向我解释那部分是否一切正常,我做错了什么。

4

1 回答 1

2

@Html.DropDownList()有点特别。您可以隐式或显式地向其传递参数值。

在本教程中,他们通过使用模型属性的名称调用助手来隐式执行此操作,如下所示:

<div class="editor-field"> 
        @Html.DropDownList("DepartmentID", String.Empty) 
        @Html.ValidationMessageFor(model => model.DepartmentID) 
</div>

通过隐式执行,HTML 助手将在 中查找ViewBag具有相同名称的对象。而且,正如您在PopulateDepartmentsDropDownList()方法中看到的那样,他们正是这样做的(最后一行):

private void PopulateDepartmentsDropDownList(object selectedDepartment = null)
{
    var departmentsQuery = from d in db.Departments
                           orderby d.Name
                           select d;
    ViewBag.DepartmentID = new SelectList(departmentsQuery, "DepartmentID", "Name", selectedDepartment);
}

本教程中,@Html.DropDownList()将更详细地解释帮助程序。

于 2013-07-23T11:07:43.377 回答