Asp.net mvc 3 在MVC 3中将下拉列表设置为特定值

Asp.net mvc 3 在MVC 3中将下拉列表设置为特定值,asp.net-mvc-3,data-binding,drop-down-menu,Asp.net Mvc 3,Data Binding,Drop Down Menu,下午好 我的视图中有一个下拉列表 <div class="editor-label"> @Html.LabelFor(model => model.SiteTypeId, "SiteType") </div> <div class="editor-field"> @Html.DropDownList("S

下午好

我的视图中有一个下拉列表

    <div class="editor-label">
                    @Html.LabelFor(model => model.SiteTypeId, "SiteType")
                </div>
                <div class="editor-field">
                    @Html.DropDownList("SiteTypeId", (IEnumerable<SelectListItem>) ViewBag.SiteTypeId)
                    @Html.ValidationMessageFor(model => model.SiteTypeId)
                </div>  
目前下拉列表中只有两项:

1 (value) - Foo (item)  
2 (value) - Bar (item)
通过控制器a la显示:

public ActionResult Details(Guid id)
    {
        var model = Model(id);

        ViewBag.SiteTypeId = new SelectList(db.SiteTypes, "SiteTypeId", "SiteTypeName");
        return View(model.Details);
    }
用户将相应地更新它,并将其存储在数据库中

我可以从数据库中获取下拉列表的值,这没有问题,但是如何有效地将该值绑定到列表中呢

我觉得问这个很简单:'(


欢迎提供任何帮助。

对于包含SelectList作为DropDownList帮助程序第一个参数的
ViewBag
参数,请不要使用相同的名称:

ViewBag.SiteTypes = new SelectList(db.SiteTypes, "SiteTypeId", "SiteTypeName");
并且认为:

@Html.DropDownList("SiteTypeId", (IEnumerable<SelectListItem>)ViewBag.SiteTypes)
@Html.DropDownList(“SiteTypeId”,(IEnumerable)ViewBag.SiteTypes)

现在,在提交此表单后的POST操作中,所选值将作为名为
SiteTypeId

的参数传递。噢,我的话……该回家了,我想Darin!
@Html.DropDownList("SiteTypeId", (IEnumerable<SelectListItem>)ViewBag.SiteTypes)