Я изо всех сил пытался создать выпадающий список, который будет отображать названия стран из базы данных.
Ситуация:
У меня есть контроллер "AdvertisingController", модель "AdvertisingModel" и View "Create.cshtml".
В представлении мне нужно создать выпадающий список, который будет отображать названия стран из базы данных.
Я знаю, что хорошо будет создать Viewmodel. Но как мне это сделать?
Куча кода будет высоко ценится. :)
У меня есть следующий код, но он показывает ошибку 'null reference'.
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);
}
Razor:
@Html.DropDownListFor(m=>m.categories.CategoryID,Model.categories.CategoryList,"--Select one--")