2011-07-21 231 views
0

我一直在努力創建一個下拉列表,它將顯示來自數據庫的國家名稱。 的情況是: 我有一個控制器「AdvertisementController」,模型「AdvertisementModel」和視圖「Create.cshtml」。 在視圖中,我需要創建一個下拉列表,它將顯示來自數據庫的國家名稱。從數據庫綁定下拉列表

我知道創建Viewmodel的好處是。但我該怎麼做? 一堆代碼將不勝感激。 :)

我有以下代碼,但它顯示'空引用'錯誤。

視圖模型:

public class CommunicationViewModel 
    { 

     public string CategoryID { get; set; } 
     public IEnumerable<SelectListItem> CategoryList { get; set; } 
    } 

型號:

public class CreateAdModel 
    { 
     [Required] 
     [Display(Name = "Title")] 
     public string Title { get; set; } 

     [Required] 
     [Display(Name = "Description")] 
     [DataType(DataType.MultilineText)] 
     public string Message { get; set; } 

     [Required] 
     [Display(Name = "Ad type")] 
     public string AdType { get; set; } 

     [Required] 
     [Display(Name = "Ad category")] 
     public string AdCategory { get; set; } 

     public CommunicationViewModel categories { get; set; } 


    } 

控制器:

public ActionResult Index() 
    { 
     var query = db.AddCategory.Select(c => new SelectListItem 
               { 
                Value = c.ID.ToString(), 
                Text = c.Name 
               } 
               ); 
     var model = new CommunicationViewModel { CategoryList = query.AsEnumerable() }; 
     return View(model); 
    } 

剃刀:

@Html.DropDownListFor(m=>m.categories.CategoryID,Model.categories.CategoryList,"--Select one--") 
+1

嘗試和搜索 「下拉列表MVC」。像你的問題噸:) :) –

+0

乾杯卡斯珀你的精彩想法.. :)。我確實跟着你,發現一些錯誤。猜猜我在做一些錯誤.. – kandroid

回答