我有一个视图,它在我的应用程序中显示产品和相应的类别详细信息。它继承自视图模型,以获取我需要显示的产品和类别信息。
public ViewResult Index(string id, int page = 1, int pagesize = 10)
{
var viewModel = new PagedProductList()
{
CurrentPageIndex = page,
PageSize = pagesize
};
viewModel.category = db.Category.First(c => c.Id == id);
viewModel.products = db.Product
.Where(i => i.Category.Id == viewModel.category.Id)
.OrderBy(i => i.Id)
.Skip((viewModel.CurrentPageIndex - 1) * viewModel.PageSize)
.Take(viewModel.PageSize)
.Include(p => p.ProductAttributeValues);
return View(viewModel);
}
如您所见,我将 viewmodel 的类别 ID 传递给 viewmodel 的 products where 子句。
问题 1:如果我将产品代码移动到单独的子操作中,然后使用 Html.Action 从父视图传递类别模型 ID 从父视图调用该操作,这在性能或其他方面会更好吗?
问题 2:有没有其他更好的方法来获取类别信息和相应的产品。我不能使用 db.Category.Include(“Products”) 之类的东西,因为我无法对产品进行分页。