我正在尝试将_layouts用于商店网站。
每个页面都有不同的数据,只有左侧菜单数据是常见的。 似乎我被迫拥有一个巨大的全球模型,其中包含了所有可能的数据。例如 ShopModel.menu,ShopModel.category,ShopModel.footer,ShopModel.category leader等。 它只是永远持续下去,变得非常复杂。
是否无法分隔代码,以便菜单处理菜单,类别处理类别等。 似乎是Web表单的一大步。 我尝试了一个带有自己的@model的_partial用于菜单,但它似乎被忽略了,而CHTML仍然在主ShopModel中寻找数据。
当然,在第一天,我尝试将多个@models添加到页面,但这不起作用。
编辑: 不幸的是,我不能很好地解释它,因为我认为这是第一天的问题。 我希望_layout包含MENU @model作为它的常见内容。 然后我希望将我的CATEGORY @model添加到索引页面,因为它在foreach中循环类别。
Html很好。我知道如何添加部分,但如何添加一个自给自足的部分动态foreach数据。?
答案 0 :(得分:1)
ViewComponents似乎是保持整洁和分离的答案。
答案 1 :(得分:0)
如果左侧菜单是整个系统的常用元素,只需将其代码放在Shared文件夹的Layout.cshtml页面中即可。可以将整个系统共有的所有可视元素放在那里,Header,此菜单,页脚等.View文件夹根目录下的_ViewStart.cshtml页面设置系统以查找其中引用的页面Layout
参数并涉及其中的每个View。部分视图仅表示在不包含此公共信息的情况下呈现/编码页面主体。