程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> ASP.NET中Global和URLReWrite用法

ASP.NET中Global和URLReWrite用法

編輯:ASP.NET基礎

本文實例講述了ASP.NET中Global和URLReWrite用法。分享給大家供大家參考。具體如下:

Global.asax:

有時候叫做 ASP.NET 應用程序文件,提供了一種在一個中心位置響應應用程序級或模塊級事件的方法。你可以使用這個文件實現應用程序安全性以及其它一些任務。

重點了解:application_Start; application_BeginRequest; application_Error;

① application_Start:自從服務器啟動起來,網站第一次被訪問的時候Application_Start執行
② Application_Error :程序中發生未處理異常
③ Session_End:只有進程內的Session才會調用,session_End進程外的Session不會
④ application_BeginRequest:當一個請求過來的時候,便會調用application_BeginRequest,訪問靜態頁面時application_BeginRequest不會處理,IIS直接將靜態頁面文件給了浏覽器。即使訪問一個不存在的頁面,Application_BeginRequest方法也會被調用。

URLReWrite:

丑鏈接:http://localhost/viewPerson.aspx?id=1

很丑!處女座不能忍。

帥鏈接:http://localhost/viewPerson-1.aspx

怎麼整成帥鏈接那樣的?

利用application_BeginRequest無論訪問什麼頁面,除了靜態頁面,都轉向其他程序處理的原理。

使用正則表達式對【丑鏈接】進行匹配,當用戶訪問http://localhost/viewPerson-1.aspx的時候,會觸發global.asax調用application_BeginRequest方法,正則表達式匹配成功後,執行Context.RewritePath("/ViewPerson.aspx?id=" + id); 搞定,整成【帥鏈接】,就這麼簡單。

使用正則表達式:

protected void Application_BeginRequest(object sender, EventArgs e)
{
  Match match = Regex.Match(Context.Request.Path, @"^/ViewPerson\-(\d+)\.aspx$");
  if (match.Success)
  {
 string id = match.Groups[1].Value;//拿到(\d+)就是id 的值 
 Context.RewritePath("/ViewPerson.aspx?id=" + id);
  }
}

希望本文所述對大家的asp.net程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved