我有一个主要的布局页面,它有一个基本的表格设置。我有一个主内容单元格,我用它来放置RenderBody()。我有产品列表使用Products数据库,我有一个右侧需要访问用户数据库的菜单。如何使用“主要内容”单元格中的产品模型列出我的产品,并使用用户模型在菜单单元格中列出信息?
答案 0 :(得分:2)
我使用的唯一方法(但我对它的最佳实践状态并不完全有信心)是为页面创建一个模型,包括(在您的情况下)product
模型和{{ 1}}模型。在控制器中填充这些模型,然后像在视图中一样访问内部模型。
答案 1 :(得分:2)
您可以使用partials来渲染内容部分。
想象一下,您的网页使用此模型:
public class PageModel {
public string Title { get; set; }
public ProductListModel Products { get; set; }
}
然后你可以渲染局部视图并传入模型:
@Html.Partial( "name of partial view", Model.Products )
性能成本稍高的方法是调用动作来呈现局部视图:
public class ProductsController {
public ActionResult List() {
var model = new ProductListModel();
return View( "your partial view", model );
}
}
在你看来:
@Html.Action( "list", "products" )
后一种方法的优点是可以使页面模型保持相对干净,这样就不必包含显示页面所需的所有数据。