您现在的位置:IT之家 >> 学院>> 程序开发教程>> ASP.NET教程 >> 正文内容
同级栏目:
ASP.NET教程ASP教程PHP教程JSP教程Perl教程PowerBuilder教程XML教程Visual C++教程c#教程Visual Basic教程JAVA教程C++ Builder教程C++教程Delphi教程shell教程NoahWeb教程移动开发教程
>内容阅读:

Asp.net Url Routing代码分享

作者: 来源: 时间:2010年03月10日 【字体:

ASP.net Url Routing代码分享,需要System.Web.Routing.dll文件,因地制宜。公司没安装sp1,所以网上下载了个。

需要加上2个注册在web.config

代码
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.XML.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Web.Abstractions,Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
//是最后2个。如果没Abstractions,也要引入System.Web.Abstractions.dll

代码
<httpModules>
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
当然,还得加这个注册

然后是类的写法,添加一个类继承IRouteHandler
代码
public class WebFormRouteHandler : IRouteHandler
{
public WebFormRouteHandler()
{

}

public string VirtualPath { get; private set; }

public WebFormRouteHandler(string virtualPath)
{
this.VirtualPath = virtualPath;
}

public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
var page = BuildManager.CreateInstanceFromVirtualPath(VirtualPath, typeof(Page)) as IHttpHandler;
return page;
}
}

添加个全局处理程序
代码
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.Add("Default", new Route("Home", new WebFormRouteHandler("~/Default.aspx")));
routes.Add("Personal", new Route("Personal/Home", new WebFormRouteHandler("~/TradeInformation/Default.aspx")));
routes.Add("Personal.AddTrade", new Route("Personal/AddTrade", new WebFormRouteHandler("~/TradeInformation/AddTradeChoice.aspx")));

routes.Add("Front.Dog", new Route("Trade/Dog", new WebFormRouteHandler("~/Dog/TradeInformation.aspx")));
routes.Add("Front.Cat", new Route("Trade/Cat", new WebFormRouteHandler("~/Cat/TradeInformation.aspx")));
routes.Add("Front.Others", new Route("Trade/Others", new WebFormRouteHandler("~/Others/TradeInformation.aspx")));
routes.Add("Front.Equipment", new Route("Trade/Equipment", new WebFormRouteHandler("~/Equipment/TradeInformation.aspx")));
routes.Add("Front.Wholesale", new Route("Trade/Wholesale", new WebFormRouteHandler("~/Wholesale/TradeInformation.aspx")));

routes.Add("Front.CatDetail", new Route("Trade/CatDetail", new WebFormRouteHandler("~/Cat/CatTradeInformationDetail.aspx")));


}