zoukankan      html  css  js  c++  java
  • ASP.NET伪静态实现

    在asp.net下,如何自己写代码来实现伪静态呢?如何重写url地址呢?

    例如:本来aspx的页面地址是:/default.aspx?id=1,我要重写成这样:/index-1.html。那如何实现?

    思路如下:利用HttpModule来实现。

     

    1.新建文件,URLHttpModel.cs,并实现IHttpModule接口。代码如下:

    [csharp] view plain copy
     
    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.Linq;  
    4. using System.Text.RegularExpressions;  
    5. using System.Web;  
    6.   
    7. namespace Web.HttpModel.Demo  
    8. {  
    9.     public class URLHttpModel : IHttpModule  
    10.     {  
    11.         public void Init(HttpApplication context)  
    12.         {  
    13.             context.BeginRequest += Context_BeginRequest;  
    14.         }  
    15.   
    16.         private void Context_BeginRequest(object sender, EventArgs e)  
    17.         {  
    18.             HttpApplication app = (HttpApplication) sender;  
    19.             HttpContext context = app.Context;  
    20.             string requestPage = context.Request.Path.ToLower();  
    21.             var newPattern = "/index-(\d+).html";  
    22.             if (Regex.IsMatch(requestPage, $"^{newPattern}$", RegexOptions.None | RegexOptions.IgnoreCase))  
    23.             {  
    24.                 string queryString = Regex.Replace(requestPage, newPattern, "id=$1", RegexOptions.None | RegexOptions.IgnoreCase);  
    25.                 context.RewritePath("/Default.aspx", string.Empty, queryString);  
    26.             }  
    27.         }  
    28.   
    29.         public void Dispose()  
    30.         {  
    31.               
    32.         }  
    33.     }  
    34. }  

    2.然后在web.config文件中,配置此Modeule,代码如下:

    [csharp] view plain copy
     
    1. <httpModules>  
    2.       <add name="URLModel" type="Web.HttpModel.Demo.URLHttpModel,Web.HttpModel.Demo"/>  
    3. </httpModules>  

    3,然后运行项目,输入如下地址,/index-1.html,可以看到如下的效果:

     
     
  • 相关阅读:
    LeetCode 剑指offer 面试题05. 替换空格
    WebSocket整合SSM(Spring,Struts2,Maven)
    Eclipse常用20个快捷键
    JDK、JRE、JVM三者间的联系与区别
    Java集合框架详解(全)
    Java开发环境配置(Jdk、Tomcat、eclipse)
    Java面向对象概述及三大特征(封装,继承和多态)
    程序员之歌
    UML2.0最新版入门图解
    java单元测试,ssh(spring,struts2,hibernate)框架整合junit4
  • 原文地址:https://www.cnblogs.com/jjg0519/p/6337156.html
Copyright © 2011-2022 走看看