Пытаюсь создать редактирование модели. Выскакивает ошибка:
Index.cshtml :
@{
ViewBag.Title = "Index";
Layout = "~/Views/_Layout.cshtml";
}
@model justfortest.Models.Book
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
<fieldset>
@Html.HiddenFor(m => m.Id)
<p>
@Html.LabelFor(m => m.Name, "Название книги")
<br />
@Html.EditorFor(m => m.Name)
</p>
<p>
@Html.LabelFor(m => m.Author, "Автор")
<br />
@Html.EditorFor(m => m.Author)
</p>
<p>
@Html.LabelFor(m => m.Price, "Цена")
<br />
@Html.EditorFor(m => m.Price)
</p>
<p><input type="submit" value="Отправить" /></p>
</fieldset>
}
HomeController:
BookContext db = new BookContext();
[HttpGet]
public ActionResult Index()
{
return View(db.Books);
}
[HttpPost]
public ActionResult Index(Book book)
{
db.Entry(book).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
protected override void Dispose(bool disposing)
{
db.Dispose();
base.Dispose(disposing);
}
Модели есть. Таблицы БД заполнены данными
Ты передаешь в представление модель с типом DbSet<Book>
return View(db.Books);
но ожидаешь в разметке justfortest.Models.Book как и ожидаешь в методе public ActionResult Index(Book book). И справедливо получаешь исключение, в процессе обработки разметки, из-за рассогласованных типов моделей.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей