我想采用原始URL,截断查询字符串参数,并返回URL的清理版本.我希望它在整个应用程序中发生,因此通过global.asax执行将是理想的.此外,我认为301重定向也是有序的.
即.
在:www.website.com/default.aspx?utm_source=twitter&utm_medium=social-media
出:www.website.com/default.aspx
实现这一目标的最佳方法是什么?
目前,我们有一个解决方案,使用此方法从URL中获取文件名
currentFile = Path.GetFileNameWithoutExtension(url);
Run Code Online (Sandbox Code Playgroud)
我们发现,如果附加的查询字符串包含引号等字符,则返回时路径中出现非法字符错误.
例如,如果网址是
http:\\myurl.com\mypage.aspx?utm_content=This+Is+"Broken"
Run Code Online (Sandbox Code Playgroud)
然后它将无法获取文件名.获得"mypage"有更好,更清洁的方法吗?
我正在做一个项目,我想做的是清除我的网址栏中的查询字符串.
但直到现在我还没多运气..
希望有人可以帮我这个..
这是我尝试做的代码之一:
System.Reflection.PropertyInfo isreadonly = typeof(System.Collections.Specialized.NameValueCollection).GetProperty( "IsReadOnly", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
isreadonly.SetValue(this.Request.QueryString, false, null);
this.Request.QueryString.Remove("abc");
Run Code Online (Sandbox Code Playgroud)