如何从应用程序获取相关URL Request.Url.AbsolutePath?
VirtualPathUtility似乎只适用于~/XXX网址?
Ash*_*ngh 31
它的回答有点晚,但有一个优雅的解决方案.您可以使用
Request.Url.PathAndQuery
Run Code Online (Sandbox Code Playgroud)
这将返回页面的相对路径.
例如,如果URL是www.example.com/products?A=a&B=b&C=c,则上面的代码将返回/products?A=a&B=b&C=c
jga*_*fin 16
我这样解决了:
// create an absolute path for the application root
var appUrl = VirtualPathUtility.ToAbsolute("~/");
// remove the app path (exclude the last slash)
var relativeUrl = HttpContext.Current.Request.Url.AbsolutePath.Remove(0, appUrl.Length - 1);
Run Code Online (Sandbox Code Playgroud)
要在不使用字符串操作和处理我使用的应用程序相对路径的情况下执行此操作:
var relativeUrl = VirtualPathUtility.ToAppRelative(
new Uri(context.Request.Url.PathAndQuery, UriKind.Relative).ToString());
Run Code Online (Sandbox Code Playgroud)
这对我有用:
VirtualPathUtility.MakeRelative("~", Request.Url.AbsolutePath)
Run Code Online (Sandbox Code Playgroud)
例如,如果网站的根是/Website和Request.Url.AbsolutePath是/Website/some/path这将返回some/path.