Получите относительный URL-адрес приложения с Request.Url.AbsolutePath
Как я могу получить относительный URL-адрес приложения от Request.Url.AbsolutePath?
VirtualPathUtility работает только с ~/XXX urls?
Ответ 1
Я решил это так:
// 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);
Ответ 2
Немного поздно ответить, но есть элегантное решение. Вы можете использовать
Request.Url.PathAndQuery
Это вернет относительный путь к странице.
Например, если URL-адрес www.example.com/products?A=a&B=b&C=c, вышеуказанный фрагмент кода вернет /products?A=a&B=b&C=c
Ответ 3
Для этого без использования строковых манипуляций и обработки относительного пути приложения, который я использовал:
var relativeUrl = VirtualPathUtility.ToAppRelative(
new Uri(context.Request.Url.PathAndQuery, UriKind.Relative).ToString());