asp.net2.0 URL重寫以及urlMappings問題(1)_.Net教程
推薦:談?wù)凥tmlControl與WebControl的區(qū)別與用途Web控件和Html控件雖然好多功能相同并且長(zhǎng)得很像 但是它們的內(nèi)部實(shí)現(xiàn)機(jī)制是完全不一樣的 Web控件要比Html控件執(zhí)行效率要好 1. 使用起來(lái)也相當(dāng)方便,舉個(gè)簡(jiǎn)單的例子,例如Button
在asp.net2.0中的urlMappings倒是非常好用,可惜暫不支持正則表達(dá)式,不過,好在如果用IHttpModule的話
不管什么樣的請(qǐng)求都會(huì)先經(jīng)過IHttpModule這樣就為URL重寫提供了一個(gè)好機(jī)會(huì):
下面是我寫的一個(gè)IHttpModule:
using System;
using System.Web;
public class ReWriteModule : IHttpModule
{
public ReWriteModule()
{
}
public override string ToString()
{
return this.GetType().ToString();
}
void IHttpModule.Dispose()
{
}
private static System.Xml.XmlDocument ruleDoc = null;
private static System.Xml.XmlDocument GetRuleConfig(System.Web.HttpContext app)
{
if (ruleDoc == null)
{
ruleDoc = new System.Xml.XmlDocument();
ruleDoc.Load(app.Server.MapPath("~/rule.xml"));
}
return ruleDoc;
}
public static string GetUrl(System.Web.HttpContext cxt, string path)
{
System.Xml.XmlDocument doc = GetRuleConfig(cxt);
System.Xml.XmlNodeList lst = doc.GetElementsByTagName("RewriterRule");
string pat = "";
foreach (System.Xml.XmlNode nd in lst)
{
System.Xml.XmlNodeList sub = nd.ChildNodes[0].ChildNodes;
foreach (System.Xml.XmlNode chk in sub)
{
pat = "^" chk.InnerText "$";
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(pat, System.Text.RegularExpressions.RegexOptions.Compiled | System.Text.RegularExpressions.RegexOptions.IgnoreCase);
if (reg.IsMatch(path))
{
return reg.Replace(path, nd.ChildNodes[1].InnerText);
}
}
}
return null;
}
分享:ASP.NET 2.0服務(wù)器控件之客戶端功能 多數(shù)在表示層應(yīng)用的服務(wù)器控件主要由兩個(gè)部分組成:服務(wù)器端功能和客戶端功能。服務(wù)器端功能永遠(yuǎn)是服務(wù)器控件的核心,而隨著技術(shù)的發(fā)展,客戶端功能也逐漸變得越來(lái)越重要。只有兩個(gè)部分
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- asp.net Repeater分頁(yè)實(shí)例(PageDataSource的使用)
- 解析.NET FileStreams如何將DTD插入XML文件中
- 解讀多語(yǔ)言開發(fā)的個(gè)人體驗(yàn)
- c# 連接字符串?dāng)?shù)據(jù)庫(kù)服務(wù)器端口號(hào)
- 解析ASP.NET MVC項(xiàng)目中視圖的單元測(cè)試
- 淺談ASP.NET 2.0服務(wù)器控件開發(fā)的基本概念
- .NET教程之--asp.net初學(xué)者項(xiàng)目開發(fā)疑難小結(jié)
- ASP.NET中MD5和SHA1加密的幾種方法
- 淺析8月編程語(yǔ)言榜:.Net前景如何?
- 基于.NET 4.5 壓縮的使用
- 相關(guān)鏈接:
- 教程說(shuō)明:
.Net教程-asp.net2.0 URL重寫以及urlMappings問題(1)
。