目前我们有一个解决方案,使用此
从URL中获取文件名currentFile = Path.GetFileNameWithoutExtension(url);
我们发现,如果附加的查询字符串包含引号等字符,则返回时路径中存在非法字符错误。
例如,如果网址是
http:\\myurl.com\mypage.aspx?utm_content=This+Is+"Broken"
然后它将无法获取文件名。获得“mypage”是否有更好,更清洁的方式?
答案 0 :(得分:15)
使用此:Uri.AbsolutePath
Request.Url.AbsolutePath
答案 1 :(得分:3)
我会找到?
,如果它存在,则删除字符串的其余部分,然后将其用于GetFileNameWithoutExtension。
例如:
string url;
int index;
index = url.IndexOf("?");
if (index != -1)
{
url = url.Substring(0, index);
}
currentFile = Path.GetFileNameWithoutExtension(url);
答案 2 :(得分:0)
使用HttpContext.Current.Request.PhysicalPath而不是完整的URL作为Path.GetFileNameWithoutExtension方法的参数。
希望这有帮助,