手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >asp.net下URL处理两个小工具方法
asp.net下URL处理两个小工具方法
摘要:有的时候我们要操作一个URL地址中查询参数,为了不破坏URL的原有结构,我们一般不能直接在URL的后面加&query=value,特别是我们...

有的时候我们要操作一个URL地址中查询参数,为了不破坏URL的原有结构,我们一般不能直接在URL的后面加&query=value,特别是我们的URL中有多个参数时,这种处理更麻烦。

下面两个小方法就是专门用来为一个URL添加一个查询参数或删除一个查询参数,这两个方法隐藏了原URL有无参数,是不是原来就有这个参数,有没有fragment(#anchor)这些细节和处理

/**////<summary>

///AddaquerytoanURL.

///iftheURLhasnotanyquery,thenappendthequerykeyandvaluetoit.

///iftheURLhassomequeries,thencheckitifexiststhequerykeyalready,replacethevalue,orappendthekeyandvalue

///iftheURLhasanyfragment,appendfragmentstotheURLend.

///</summary>

publicstaticstringSafeAddQueryToURL(stringkey,stringvalue,stringurl)

{

intfragPos=url.LastIndexOf("#");

stringfragment=string.Empty;

if(fragPos>-1)

{

fragment=url.Substring(fragPos);

url=url.Substring(0,fragPos);

}

intquerystart=url.IndexOf("?");

if(querystart<0)

{

url+="?"+key+"="+value;

}

else

{

Regexreg=newRegex(@"(?<=[&?])"+key+@"=[^s",RegexOptions.Compiled);

if(reg.IsMatch(url))

url=reg.Replace(url,key+"="+value);

else

url+="&"+key+"="+value;

}

returnurl+fragment;

}

/**////<summary>

///Removeaqueryfromurl

///</summary>

///<paramname="key"></param>

///<paramname="url"></param>

///<returns></returns>

publicstaticstringSafeRemoveQueryFromURL(stringkey,stringurl)

{

Regexreg=newRegex(@"[&?]"+key+@"=[^s",RegexOptions.Compiled);

returnreg.Replace(url,newMatchEvaluator(PutAwayGarbageFromURL));

}

privatestaticstringPutAwayGarbageFromURL(Matchmatch)

{

stringvalue=match.Value;

if(value.EndsWith("&"))

returnvalue.Substring(0,1);

else

returnstring.Empty;

}

测试:

strings="http://www.cnblogs.com/?a=1&b=2&c=3#tag";

WL(SafeRemoveQueryFromURL("a",s));

WL(SafeRemoveQueryFromURL("b",s));

WL(SafeRemoveQueryFromURL("c",s));

WL(SafeAddQueryToURL("d","new",s));

WL(SafeAddQueryToURL("a","newvalue",s));

//输出如下:

//http://www.cnblogs.com/?b=2&c=3#tag

//http://www.cnblogs.com/?a=1&c=3#tag

//http://www.cnblogs.com/?a=1&b=2#tag

//http://www.cnblogs.com/?a=1&b=2&c=3&d=new#tag

//http://www.cnblogs.com/?a=newvalue&b=2&c=3#tag

【asp.net下URL处理两个小工具方法】相关文章:

asp.net导出excel的简单方法

Asp.net中处理一个站点不同Web应用共享Session的问题

asp.net 参数不同共用一个页面的实现方法

asp.net传多个值到其它页面的具体实现

asp.net中eval不能定义变量的问题的解决方法

在asp.net下实现Option条目中填充前导空格的方法

asp.net下用url重写URLReWriter实现任意二级域名的方法第1/2页

asp.net 的错误处理机制讲解

.net4.0中tuple元组的使用方法

asp.net2.0中css失效的解决方法

精品推荐
分类导航