从数据库绑定下拉列表

时间:2011-07-21 08:53:03

标签: asp.net-mvc-3 drop-down-menu

我一直在努力创建一个下拉列表,该列表将显示数据库中的国家/地区名称。 情况是: 我有一个Controller“AdvertisementController”,一个模型“AdvertisementModel”和一个View“Create.cshtml”。 在视图中,我需要创建一个下拉列表,该列表将显示数据库中的国家/地区名称。

我知道创建一个Viewmodel会有好处。但是我该怎么做呢? 一堆代码将非常感激。 :)

我有以下代码,但它显示'null reference'错误。

视图模型:

 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 个答案:

答案 0 :(得分:0)

这可能会对你有所帮助。添加用户时删除角色。非常简单的教程

http://rtur.net/blog/post/2009/06/03/Quick-and-dirty-role-management-in-ASPNET-MVC.aspx