2011-07-21 180 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

回答