ASP.NET页面内容 - 这属于哪里?

时间:2009-07-27 13:56:12

标签: asp.net

我正在开发一个具有单个母版页和多个内容页的Web应用程序。每个页面的主要内容右侧都有一个小侧边栏,并附有一些简短的内容。但是,该简短内容特定于您所在的页面。我无法决定是将它放在每个单独的页面上,还是放在MultiView的母版页中,并在代码隐藏中使用某些逻辑来指定根据您所在的页面显示哪个视图。

哪个看起来更优雅?我对ASP.NET仍然相当新,我正在尝试对正确的架构等感觉良好。

3 个答案:

答案 0 :(得分:4)

您可以在单个母版页中创建多个内容占位符。所以在你的情况下,我会创建两个。一篇用于文章的内容,另一篇用于侧边栏:

<!-- some html-->
<asp:contentplaceholder id="ArticleContents" runat="server">
</asp:contentplaceholder>
<!-- some more html-->
<asp:contentplaceholder id="ArticleSidebar" runat="server">
</asp:contentplaceholder>
<!-- even more html-->

然后您可以将文章内容和侧边栏内容放在同一页面中,并使用类似

的内容将其放置在正确的位置
<asp:Content ID="article" ContentPlaceHolderID="ArticleContents" Runat="Server">
Your article
</asp:Content>
<asp:Content ID="sidebar" ContentPlaceHolderID="ArticleSidebar" Runat="Server">
Your sidebar
</asp:Content>

答案 1 :(得分:2)

如果您希望在您的网站变得更大并且需要更多这些自定义边栏的情况下具有一定的可管理性,那么我不会在母版页中放置超出标准布局的任何内容。

在侧栏中添加额外的ContentPlaceHolder并将内容添加到每个内容页面的内容控件中有什么问题?

你的方法对我来说似乎过于复杂。

答案 2 :(得分:0)

您还可以将其他代码放入用户控件(或两个)中。然后,内容页面将包含适合右侧边栏的该页面的用户控件。