• ASP.NET伪静态实现


    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,可以看到如下的效果:

  • 相关阅读:
    JAVA Hibernate工作原理及为什么要用
    Struts2应用流程注解
    查看cpu几核方法
    loadrunner录制获取不到token
    cpu监控
    接口测试
    LoadRunner性能测试结果计数器指标说明
    windows资源监控
    loadrunner检查点
    loadrunner 关联
  • 原文地址:https://www.cnblogs.com/webenh/p/6206218.html
Copyright © 2020-2023  润新知