当path包含参数时,VirtualPathUtility.IsAbsolute(path)抛出异常

时间:2011-07-04 10:46:37

标签: c# .net asp.net exception-handling

为什么在ASP.NET中

VirtualPathUtility.IsAbsolute("/~abc")效果很好。

VirtualPathUtility.IsAbsolute("/~abc?n=1)抛出异常:

  

System.Web.HttpException:'〜/ abc?n = 1'不是有效的虚拟路径?

更新

我刚刚检查过.NET 3.5和.NET 4.0之间的行为存在差异。 VirtualPathUtility.IsAbsolute("/~abc?n=1)在4.0中运行良好,但在3.5中运行不正常。你们有谁知道为什么他们改变了这个?

2 个答案:

答案 0 :(得分:5)

由于/~abc?n=1不是路径,因此它也包含URL的查询字符串部分(/~abc是路径,n=1是查询字符串)

答案 1 :(得分:0)

你要传递的是带有查询参数的url,而不是路径。使用路径。如果字符串以“/”字符开头,则Btw IsAbsolute返回true,因此您不需要使用该方法 - 只需自行检查即可。