MetaBuilders在ASP.NET FORUMS2.0中的应用方法

曾听到朋友报怨ASP.NET FORUMS2.0中因为使用了MetaBuilders使得化码不太直观,呵,有利有有弊,使用这个控件目的
在于统一界面。

比方说在管理页面中一般都会分成左右两栏,在ASP.NET可能比较常用的方法有两种,一种是使用框架,还有一种是
使用一个表现左边的asxc来统一。
那么使用了MetaBuilders之后是一种什么情况呢?我觉得和使用了框架页面差不多,不过里面没有了分栏,
页面看起来是一个整体,页面变成了一个容器,包含了其他的一些分页,这种做法就要比使用asxc来统一页面
来说要便于管理。
在Thems\AdminMasterPage.ascx中

 1<table cellspacing="7" width="100%">
 2<tr>
 3<td valign="top" width="170">
 4<forums:adminnavigation runat="server"></forums:adminnavigation>
 5</td>
 6<td valign="top">
 7<mp:region id="AdminContent" runat="server"><p>Default main content</p></mp:region>
 8</td>
 9</tr>
10</table>

在页面的右边他定义了id="AdminContent"
也就是说在这个时候你并不知道你的左边是什么,这个ascx就是一个容器。
这应该是ASP.NET FORUMS中一个比较普遍的调用机制,都是先直接调某一个内容,然后再查找反调上级容器
接着以Admin\SiteSettings.aspx为例
在超链接中都是直接调用这个文件,但这个文件却只是右边显示的内容,他通过

1<mp:contentcontainer id="MPContainer" masterpagefile="~/Themes/AdminMasterPage.ascx" runat="server">   
2去查找他的父容器。   
3通过   
4<mp:content id="AdminContent" runat="server">   
5说明他将替换父容器中的那个组件。   
6顺便说一下今天接触的代码分离方法和以前又有所不同,以前是通过类去找皮肤,而这几个是没有皮肤的   
7都直接带有自己的cs文件,然后在Components中有一个相应的实体类。</mp:content></mp:contentcontainer>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus