ASP.NET中Global和URLReWrite用法
本文實(shí)例講述了ASP.NET中Global和URLReWrite用法。分享給大家供大家參考。具體如下:
Global.asax:
有時(shí)候叫做 ASP.NET 應(yīng)用程序文件,提供了一種在一個(gè)中心位置響應(yīng)應(yīng)用程序級(jí)或模塊級(jí)事件的方法。你可以使用這個(gè)文件實(shí)現(xiàn)應(yīng)用程序安全性以及其它一些任務(wù)。
重點(diǎn)了解:application_Start; application_BeginRequest; application_Error;
① application_Start:自從服務(wù)器啟動(dòng)起來(lái),網(wǎng)站第一次被訪問(wèn)的時(shí)候Application_Start執(zhí)行
② Application_Error :程序中發(fā)生未處理異常
③ Session_End:只有進(jìn)程內(nèi)的Session才會(huì)調(diào)用,session_End進(jìn)程外的Session不會(huì)
④ application_BeginRequest:當(dāng)一個(gè)請(qǐng)求過(guò)來(lái)的時(shí)候,便會(huì)調(diào)用application_BeginRequest,訪問(wèn)靜態(tài)頁(yè)面時(shí)application_BeginRequest不會(huì)處理,IIS直接將靜態(tài)頁(yè)面文件給了瀏覽器。即使訪問(wèn)一個(gè)不存在的頁(yè)面,Application_BeginRequest方法也會(huì)被調(diào)用。
URLReWrite:
丑鏈接:http://localhost/viewPerson.aspx?id=1
很丑!處女座不能忍。
帥鏈接:http://localhost/viewPerson-1.aspx
怎么整成帥鏈接那樣的?
利用application_BeginRequest無(wú)論訪問(wèn)什么頁(yè)面,除了靜態(tài)頁(yè)面,都轉(zhuǎn)向其他程序處理的原理。
使用正則表達(dá)式對(duì)【丑鏈接】進(jìn)行匹配,當(dāng)用戶訪問(wèn)http://localhost/viewPerson-1.aspx的時(shí)候,會(huì)觸發(fā)global.asax調(diào)用application_BeginRequest方法,正則表達(dá)式匹配成功后,執(zhí)行Context.RewritePath("/ViewPerson.aspx?id=" + id); 搞定,整成【帥鏈接】,就這么簡(jiǎn)單。
使用正則表達(dá)式:
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); } }
希望本文所述對(duì)大家的asp.net程序設(shè)計(jì)有所幫助。
- asp.net 在global中攔截404錯(cuò)誤的實(shí)現(xiàn)方法
- Global.cs中自動(dòng)獲取未處理的異常
- 在Global.asax文件里實(shí)現(xiàn)通用防SQL注入漏洞程序(適應(yīng)于post/get請(qǐng)求)
- Global.asax取絕對(duì)路徑的方法
- Global.asax取物理路徑/取絕對(duì)路徑具體方法
- Global.asax的Application_BeginRequest實(shí)現(xiàn)url重寫(xiě)無(wú)后綴的代碼
- Global.asax的Application_Error實(shí)現(xiàn)錯(cuò)誤記錄/錯(cuò)誤日志的代碼
- c#定時(shí)器和global實(shí)現(xiàn)自動(dòng)job示例
- ASP.net全局程序文件Global.asax用法分析
- 在C#中g(shù)lobal關(guān)鍵字的作用及其用法
相關(guān)文章
ASP.net如何連接SQL SERVER 2012數(shù)據(jù)庫(kù)
這篇文章主要介紹了ASP.net連接SQL SERVER 2012數(shù)據(jù)庫(kù)的方法,非常不錯(cuò),在項(xiàng)目開(kāi)發(fā)中經(jīng)??梢杂玫剑枰呐笥芽梢詤⒖枷?/div> 2016-08-08基于.NET中:自動(dòng)將請(qǐng)求參數(shù)綁定到ASPX、ASHX和MVC的方法(菜鳥(niǎo)必看)
這篇文章的目的就是告訴初學(xué)者如何自動(dòng)將客戶端用AJAX發(fā)送的參數(shù)自動(dòng)綁定為強(qiáng)類型的成員屬性或方法參數(shù)2013-04-04WPF簡(jiǎn)介與基礎(chǔ)開(kāi)發(fā)
WPF是微軟推出的基于Windows的用戶界面框架,這篇文章介紹了WPF的基礎(chǔ)開(kāi)發(fā),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02asp.net DataGridView導(dǎo)出到Excel的三個(gè)方法[親測(cè)]
打開(kāi)Excel并將DataGridView控件中數(shù)據(jù)導(dǎo)出到Excel的幾種方法2008-08-08.Net語(yǔ)言Smobiler開(kāi)發(fā)之如何仿微信朋友圈的消息樣式
這篇文章主要介紹了.Net語(yǔ)言Smobiler開(kāi)發(fā)平臺(tái)如何仿微信朋友圈的消息樣式?本文為大家揭曉答案2016-09-09建立自定義的數(shù)據(jù)驅(qū)動(dòng)的本地化資源provider
本文探討了自定義的本地化資源提供者.如果想用一個(gè)可替代系統(tǒng)的資源處理方案,例如把所有的資源放入數(shù)據(jù)庫(kù)中,而不是放在分散的資源文件里,你可以自定義一個(gè)resource provider.2010-06-06最新評(píng)論