zoukankan      html  css  js  c++  java
  • 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 { getprivate 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")));
                
               
            }

    然后页面访问就可以访问对应的标记。例如

  • 相关阅读:
    洛谷1113 杂务
    MySQL中的各种引擎
    剑指offer第3题:从尾到头打印链表
    向一个GitHub repository添加协作者
    String、StringBuffer与StringBuilder之间区别
    java与C语言在字符串结束符上的区别
    git 查看远程分支、本地分支、创建分支、把分支推到远程repository、删除本地分支
    Git问题Everything up-to-date解决
    Mybatis 数据库物理分页插件 PageHelper
    时间序列分析发展史
  • 原文地址:https://www.cnblogs.com/drek_blog/p/1682396.html
Copyright © 2011-2022 走看看