如何从 HttpServerUtility.TransferRequest 修复 "A virtual path is expected"?
How to fix "A virtual path is expected" from HttpServerUtility.TransferRequest?
在派生自 System.Web.Mvc.ActionResult 的自定义 class 中,我有以下代码行:
HttpContext.Current.Server.TransferRequest(myUrl, true);
在大多数情况下,这都能正常工作。但偶尔,它会因错误而失败:
Uncaught error in MVC Controller
ArgumentException: Invalid path for child request 'http://[...]'. A virtual path is expected.
我该如何解决这个错误?
如错误消息的最后一部分所述,问题是 URL 参数被传递给 TransferRequest
方法。
该方法需要一个相对路径,而不是包含域的绝对路径 URL。比如这个参数就可以:
"/Search.aspx"
这个参数会导致错误:
"http://example.com/Search.aspx"
在派生自 System.Web.Mvc.ActionResult 的自定义 class 中,我有以下代码行:
HttpContext.Current.Server.TransferRequest(myUrl, true);
在大多数情况下,这都能正常工作。但偶尔,它会因错误而失败:
Uncaught error in MVC Controller
ArgumentException: Invalid path for child request 'http://[...]'. A virtual path is expected.
我该如何解决这个错误?
如错误消息的最后一部分所述,问题是 URL 参数被传递给 TransferRequest
方法。
该方法需要一个相对路径,而不是包含域的绝对路径 URL。比如这个参数就可以:
"/Search.aspx"
这个参数会导致错误:
"http://example.com/Search.aspx"