2010-01-16 48 views
0

在MVC中实现部分ascx视图的可视继承最佳方式是什么?将公共布局应用于ASP.NET MVC中的ascx控件MVC

我有主Site.Master文件,它提供了页眉,页脚,侧边栏和主要内容区域。然后我有一个Info.Master,它使用Site.Master作为母版页,它为几乎相同的页面提供了一个通用布局。然后,网站上所有这些类似的“信息”页面都将Info.Master设置为其主页面。

现在我想为侧栏上出现的ascx部分视图做同样的事情,因为我有一些控件,所有“看起来”都是相同的,包括页眉,页脚等?

回答

0

您可以使用普通的ASPX视图作为部分,并使用常见的局部布局元素为它们创建另一个母版页。查看Jeffrey Palermo的this post了解更多关于此技术的信息。

另一种选择是将常见的局部布局元素放置在您的主要母版页之一中,并利用视图位置。例如,如果您有一个名为“Sidebar”的部分内容仅针对每个控制器进行更改,则可以在Views/Shared目录中创建一个通用部分,并在每个Views/<控制器名称>目录中创建更具体的部分,部分将被覆盖。

<div id="sidebarheader">...</div> 
    <% Html.RenderPartial("Sidebar"); %> 
<div id="sidebarfooter">...</div> 
+0

谢谢,那个链接做的伎俩。我曾考虑过使用视图而不是局部视图,但我认为可能会有性能下降。虽然有人对此进行了基准测试,但没有发现明显的差异,但是对该链接的底部发表了评论,所以这对我有用! – krisg 2010-01-17 08:54:12