在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
页面调度采用了UrlRewrite技术,关于该技术的资料可以参考我转发的一篇文章:http://erpcrm.cnblogs.com/articles/232924.html
;Global.asax文件,只有一行,可以看出具体的代码文件都在Global.asax.cs里面
<%@ Application Language="C#" CodeBehind="Global.asax.cs" Inherits="Global" %> Global.asax.cs文件:
using System;
using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public class Global : System.Web.HttpApplication 除那三个特殊的路径外,其它的请求全部重写到"~/ApplicationTemplate/DefaultTemplate.aspx", 那么 DefaultTemplate.aspx 包含什么呢? 让我们新建一个文件夹 ApplicationTemplate 在该文件夹下新建一个web窗体 DefaultTemplate.aspx。 只 是为了演示UrlRewrite,DefaultTemplate.aspx中你可以输入一些简单的内容,如:“这是一个默认的模版”; 这样当我们请求“/default.aspx”时,呈现在我们面前的页面是DefaultTemplate.aspx的内容。 不信?你先动手试试吧! 3、如果我们想 把 / 重写到 ApplicatonTemplate/defaultTemplate.aspx,而把 /product/ 重写到ApplicationTemplate/ProductTemplate.aspx,怎么做呢? 首先我们在ApplicationTemplate文件夹下,添加一个ProductTemplate.aspx。 我们可能会想到在 Global.asax.cs 的 Application_BeginReque方法里再添加一个对路径的判断,显然这是不灵活的。 怎么更灵活呢?就让我们来设计一个页面调度引擎吧! 在这里,我们叫他 ApplicationManager。 添加一个类文件 ApplicationManager.cs , VWD提示我们要把它放到 App_Code目录下,就按它说的办吧! 该类有个方法叫 String GetNewPath(String oldPath); 我们要这个方法输入“/ default.aspx”返回 “~/ApplicationTemplate/DefaultTemplate.aspx”, 输入"/product/" 返回 “~/ApplicationTemplate/ProductTemplate.aspx” 如果输入的是“/Admin”,还应该返回“/Admin”。 我们假定GetNewPath()方法有这个功能,那么让我们改造一下 :Applicaton_BeginReques;
protected void Application_BeginRequest(Object sender, EventArgs e)
} 今天先到这,我的下一篇文章会把源码提供出来,也许会和本文中的不太一致,但意思不会差。 |
请发表评论