技术开发 频道

基于ASP.NET 3.5与N层架构开发企业SNS

  下面是博客系统的站点母版页面Site.Master中的一段标记代码,其中指出了ContentPlaceHolders元素所在的位置:

<div id="primarycontent">
<!—主内容开始 -->
<asp:ContentPlaceHolder ID="ContentPlaceHolderPrimary" runat="服务器"
                        EnableViewState
="False">
</asp:ContentPlaceHolder>
<!--主内容结束-->
</div>
<div id="secondarycontent">
<!—第二个内容开始 -->
<asp:ContentPlaceHolder ID="ContentPlaceHolderSecondary" runat="服务器"
                        EnableViewState
="False">
</asp:ContentPlaceHolder>
<!--第二个内容结束-->
</div>

  上面描述的过程只列出了站点母版页面中静态标记创建部分。然而,我们至少要让一个部分是动态的:页眉部分的菜单栏。这个菜单栏是一个站点级的导航栏,正好位于顶部图片的下面。

  在本博客系统中,上述菜单栏的数据源对应于应用程序的网站地图文件Web.sitemap。默认情况下,这个网站地图文件如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  
<siteMapNode>
    
<siteMapNode url="View/Pages/Home.aspx" title="首页"  description="首页"></siteMapNode>
    
<siteMapNode url="View/Pages/Aboutme.aspx" title="关于"  description="关于"></siteMapNode>
    
<siteMapNode url="View/Pages/Contact.aspx" title="联系"  description="联系"></siteMapNode>
  
</siteMapNode>
</siteMap>

  典型情况下,应该由系统管理员来维护这个文件中的菜单内容。为了正确地检索和显示头部菜单中的链接,我们使用了新的ListView控件和SiteMapDataSource控件。

  下面给出的是站点母版页面Site.Master文件中的与此部分相关的部分标记代码:

<div id="menu">
  
<asp:ListView ID="ListViewHeaderMenu" runat="server"
        DataSourceID
="SiteMapDataSourceHeader" ItemPlaceholderID="itemContainer" EnableViewState="False">
        
<LayoutTemplate>
            
<ul>
            
<asp:PlaceHolder ID="itemContainer" runat="server" />
            
</ul>
        
</LayoutTemplate>
        
<ItemTemplate>
            
<li><a href="<%# Eval("Url") %>"><%# Eval("Title") %></a></li>
        
</ItemTemplate>
    
</asp:ListView>
    
<asp:SiteMapDataSource ID="SiteMapDataSourceHeader" runat="server" ShowStartingNode="False" StartingNodeOffset="0" EnableViewState="False" />

<div id="date"><a href="~/View/Pages/Admin/Admin.aspx" runat="server">管理</a></div>
</div>

  至此,读者可能急于想了解如何构建和运行用户接口页面,而不是欣赏上面的管理页面。但是,让我们首先还是先构建用户接口母版页面Page.Master,因为它是所有用户接口页面的基础。

  小结

  在本篇中,我们剖析了系统中业务逻辑层及系统页面继承架构设计。在接下来的第四篇中,我们将讨论系统中主要用户接口页面的设计问题。

0
相关文章