我一直在努力创建一个下拉列表,该列表将显示数据库中的国家/地区名称。 情况是: 我有一个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--")
答案 0 :(得分:0)
这可能会对你有所帮助。添加用户时删除角色。非常简单的教程
http://rtur.net/blog/post/2009/06/03/Quick-and-dirty-role-management-in-ASPNET-MVC.aspx