2012-06-29 47 views
0

下午所有。將下拉列表設置爲MVC中的特定值3剃鬚刀

我有一個下拉列表,我視圖

<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> 

隨着模式看起來像這樣:

public class SiteType 
     { 
      [Key] 
      public int SiteTypeId { get; set; } 
      public string SiteTypeName { get; set; } 
     } 

目前,有剛剛在下拉菜單的兩個項目:

1 (value) - Foo (item) 
2 (value) - Bar (item) 

通過控制器一拉出現:

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

     ViewBag.SiteTypeId = new SelectList(db.SiteTypes, "SiteTypeId", "SiteTypeName"); 
     return View(model.Details); 
    } 

用戶將相應地更新這一點,它會被存儲在數據庫中。

我可以從數據庫中獲得下拉列表的值沒有問題,但我怎麼能有效地將這個值綁定到列表?

人,我覺得簡單問這樣的:'(

任何幫助總是讚賞

回答

1

不包含選擇列表的作爲DropDownList的助手的第一個參數ViewBag參數使用相同的名稱。

ViewBag.SiteTypes = new SelectList(db.SiteTypes, "SiteTypeId", "SiteTypeName"); 

並在視圖:

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

現在在POST操作中,當提交此表單時,所選值將作爲名爲SiteTypeId的參數傳遞。

+0

哦,我的話......回家的時間我認爲達林! –