У меня есть Entity Framework модель, которая содержит ссылку на другой Сущности, какEntity Framework и ASP.NET MVC более сложные модели
public class Product
{
[Key]
public int ProductID { get; set; }
[Required]
public string Name { get; set; }
[Required]
public virtual Shop Shop { get; set; }
[Required]
public double Price { get; set; }
}
Я хотел бы создать Edit View, которые содержат Shop
селектор (DropDown).
По умолчанию я создал базовый MVC контроллер с Entity модели, связанной, создавшей Edit, как:
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Product product = db.Products.Find(id);
if (product == null)
{
return HttpNotFound();
}
return View(product);
}
и вид не содержит селектор Shop.
Я пытался добавить DropDown как:
@Html.DropDownListFor(product => product.Shop, (SelectList)ViewBag.Shops)
Но в методе POST, магазин объект является недействительным.
Как с этим справиться?
вы можете добавить, как метод POST будет выглядеть в этом случае? – Tomasz
Я имею в виду, если у меня есть в моем магазине свойств объекта Entity, и в моем представлении PropertyModel свойство ShopID, мне нужно написать метод для преобразования обратно VM в модель, например: 'Shop = db.Shops.Find (this.ShopID)'? правильно? – Tomasz
Да, это правильно. –