在 MVC 中为部分 ascx 视图实现视觉继承的最佳方法是什么?
我有主要的 Site.Master 文件,它提供了页眉、页脚、侧边栏和主要内容区域。然后我有一个 Info.Master,它使用 Site.Master 作为它的母版页,它为几乎相同的页面提供了一个通用布局。然后网站上所有这些类似的“信息”页面都将 Info.Master 设置为它们的母版页。
现在我想对出现在侧边栏上的 ascx 部分视图做同样的事情,因为我有一些“看起来”相同的控件,带有页眉、页脚等?
在 MVC 中为部分 ascx 视图实现视觉继承的最佳方法是什么?
我有主要的 Site.Master 文件,它提供了页眉、页脚、侧边栏和主要内容区域。然后我有一个 Info.Master,它使用 Site.Master 作为它的母版页,它为几乎相同的页面提供了一个通用布局。然后网站上所有这些类似的“信息”页面都将 Info.Master 设置为它们的母版页。
现在我想对出现在侧边栏上的 ascx 部分视图做同样的事情,因为我有一些“看起来”相同的控件,带有页眉、页脚等?
您可以将普通 ASPX 视图用作部分视图,并使用常见的部分布局元素为它们创建另一个母版页。查看Jeffrey Palermo 的这篇文章,了解有关此技术的更多信息。
另一种选择是将常用的部分布局元素放在一个主母版页中,并利用视图位置。例如,如果您有一个名为“Sidebar”的部分,其内容仅针对每个控制器进行更改,您可以在 Views/Shared 目录中创建一个通用部分,并在每个 Views/<controller name> 目录中创建更具体的部分,并且部分将被覆盖。
<div id="sidebarheader">...</div>
<% Html.RenderPartial("Sidebar"); %>
<div id="sidebarfooter">...</div>