利用System.Web.HttpContext.Current.Request.Url.Query.Split方法能得到这样的字符?name=caicaihui&title=hahaha&page=1
假如我们想过滤掉其中一个参数,如过滤掉page参数,得到最终结果?name=caicaihui&title=hahaha 那怎么办呢,这里我写了三种方法让大家参考
方法一 利用数组
private
string
OutRequest1(
string
request)
{
string query = "" ;
string [] para = System.Web.HttpContext.Current.Request.Url.Query.Split( " ?& " .ToCharArray());
foreach ( string name in para)
{
if ( ! name.ToLower().Contains(request))
{
query += " & " + name;
}
}
return " ? " + query.TrimStart( ' & ' );
}
{
string query = "" ;
string [] para = System.Web.HttpContext.Current.Request.Url.Query.Split( " ?& " .ToCharArray());
foreach ( string name in para)
{
if ( ! name.ToLower().Contains(request))
{
query += " & " + name;
}
}
return " ? " + query.TrimStart( ' & ' );
}
调用
OutRequest1(
"
page
"
)
方法二 遍历Request
private
string
OutRequest2(
string
request)
{
string query = "" ;
foreach ( string name in Request.QueryString.AllKeys)
{
if (name.ToLower() != request)
{
query += " & " + name + " = " + Request.QueryString[name];
}
}
return " ? " + query.TrimStart( ' & ' );
}
{
string query = "" ;
foreach ( string name in Request.QueryString.AllKeys)
{
if (name.ToLower() != request)
{
query += " & " + name + " = " + Request.QueryString[name];
}
}
return " ? " + query.TrimStart( ' & ' );
}
调用
OutRequest2(
"
page
"
)
方法三 利用正则表达式
private
string
OutRequest3(
string
request)
{
return Regex.Replace(System.Web.HttpContext.Current.Request.Url.Query, request, "" );
}
{
return Regex.Replace(System.Web.HttpContext.Current.Request.Url.Query, request, "" );
}
调用
OutRequest3(@"[&|\?]page=\d+"
)
代码方面:三种方法里正则代码是最简单的,但是也是难的,其次就是方法二,容易理解
效率方面: 方法二 > 方法三 > 方法一