我昨天以不太清楚的方式问了这个问题,并没有得到任何好的反馈,所以我再试一次......
我有一个带有相关实体的实体,可以在一页上创建、更新和删除。
在相关实体由多个成员组成的情况下,假设商店有多个产品,我使用部分视图。
所以网址是stores.com/store/edit/44
我的编辑操作抓取 id 为 44 的商店实体,然后找到商店 id 为 44 的产品...
编辑以添加控制器详细信息
public ActionResult Edit(int id = 0)
{
store store = db.storess.Find(id);
IList<product> product = db.products.Where(t => t.storeid == store.storeid).ToList();
var viewModel = new vwstore();
viewModel.store = store;
viewModel.products = product;
return View(viewModel);
}
结束编辑
并将其放在视图模型中......
public store store { get; set; }
public IList<product> products { get; set; }
在我看来,我强烈使用
@model myproject.viewModel.vwstores
我显示商店详细信息并运行一个 for 循环来显示这样的每个产品。
@for (var p = 0; p < Model.store.products.Count(); c++)
{
@Html.Partial("_product", Model.product[c]);
}
请注意,我将特定产品模型传递给局部视图。
在我的部分视图中,我使用根实体类型进行强类型,而不是像上面那样使用视图模型,因为这是我需要的,也是我传递给部分的...
@model myProjectModel.product
现在我可以显示给定产品的详细信息。
所以现在这是我的问题。如果产品有自己的相关数据,例如类别怎么办?
问题
我填写了公共 IList products { get; 放; } 通过了解商店 ID。我不知道产品 ID,那么如何填写类别列表?
我的期望是我会在产品部分中嵌套一个类别部分,但是传递模型是一个问题。我需要传递带有产品和类别列表的视图模型,但是对于部分产品,只有根实体可用。
我不能通过这样的视图模型... @Html.Partial("_categories", myviewmodel.categories[c]); 它不会编译。这是 viewdatadictionary 的用途吗?
非常感谢任何和所有帮助。