曾听到朋友报怨ASP.NET FORUMS2.0中因为使用了MetaBuilders使得化码不太直观,呵,有利有有弊,使用这个控件目的 在于统一界面。
比方说在管理页面中一般都会分成左右两栏,在ASP.NET可能比较常用的方法有两种,一种是使用框架,还有一种是 使用一个表现左边的asxc来统一。 那么使用了MetaBuilders之后是一种什么情况呢?我觉得和使用了框架页面差不多,不过里面没有了分栏, 页面看起来是一个整体,页面变成了一个容器,包含了其他的一些分页,这种做法就要比使用asxc来统一页面 来说要便于管理。 在Thems\AdminMasterPage.ascx中 <table width="100%" cellSpacing="7"> <tr> <td valign="top" width="170"> <Forums:AdminNavigation runat="server" /> </td> <td valign="top"> <mp:region id="AdminContent" runat="server"><p>Default main content</p></mp:region> </td> </tr> </table> 在页面的右边他定义了id="AdminContent" 也就是说在这个时候你并不知道你的左边是什么,这个ascx就是一个容器。 这应该是ASP.NET FORUMS中一个比较普遍的调用机制,都是先直接调某一个内容,然后再查找反调上级容器 接着以Admin\SiteSettings.aspx为例 在超链接中都是直接调用这个文件,但这个文件却只是右边显示的内容,他通过 <mp:ContentContainer runat="server" id="MPContainer" MasterPageFile="~/Themes/AdminMasterPage.ascx"> 去查找他的父容器。 通过 <mp:Content id="AdminContent" runat="server"> 说明他将替换父容器中的那个组件。 顺便说一下今天接触的代码分离方法和以前又有所不同,以前是通过类去找皮肤,而这几个是没有皮肤的 都直接带有自己的cs文件,然后在Components中有一个相应的实体类。
|