Я посмотрел похожие посты, но ничего не помогало в моем случае.
У меня есть форма, которая отлично загружается, и я вижу выпадающий категории со всеми категориями в нем.
Проблема в том, когда я пытаюсь опубликовать форму.
Я получаю эту ошибку:
Элемент ViewData, имеющий ключ 'Category', имеет тип 'System.String', но должен иметь тип 'IEnumerable'.
@Html.DropDownList ("Категория", Model.Categories) <- красный цвет </em>
Вот мой взгляд:
@using (Html.BeginForm("Save", "Album", FormMethod.Post, new { id = "frmNewAlbum" }))
{
@Html.DropDownList("Category", Model.Categories)
}
Вот моя модель:
public class AlbumModel
{
public string Title { get; set; }
public string Category { get; set; }
public List<SelectListItem> Categories { get; set; } <-- holds categories
}
Это действия контроллера для просмотра страницы:
[HttpGet]
public ActionResult Save()
{
var model = new AlbumModel();
var categories = new List<SelectListItem>() { new SelectListItem() { Text = "-- pick --" } };
categories.AddRange(svc.GetAll().Select(x => new SelectListItem() { Text = x.Name, Value = x.Name }));
model.Categories = categories;
return View(model);
}
Действие, которое получает сообщение:
[HttpPost]
public ActionResult Save(AlbumModel model)
{
var album = new AlbumDoc()
{
Category = model.Category,
Title = model.Title,
};
svc.SaveAlbum(album);
return View(model);
}