Как получить абсолютный путь без идентификатора или запроса? - PullRequest
0 голосов
/ 27 декабря 2018

Допустим, мой URL-адрес "https://www.mywebsite.com/app/company/employees/5" или" https://www.mywebsite.com/company/employees?id=5&name=jack"

Я ищу способ получить "базовый" путь или как его там называют.Как «базовый» путь будет «/ app / company / employee» для обоих, без части «/ 5» или «? Id = 5 & name = jack».

Я использовал string.Join("/", request.ApplicationPath, request.RequestContext.RouteData.Values["controller"], request.RequestContext.RouteData.Values["action"]) дляполучить его (запрос - HttpRequestBase), но он не работает так, как я хочу, поскольку он также включает в себя действие Index.Например, если URL "https://www.mywebsite.com/app/company", я хочу" / app / company / "not" / app / company / Index ". Я всегда могу проверить, является ли действие Index или нет, но оно выглядит как"Кодовый запах "для меня.

Это даже кодовый запах? Есть ли какой-нибудь правильный способ сделать это?

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Использовать HttpContext.Current.Request.Url.AbsolutePath

0 голосов
/ 27 декабря 2018

Класс Uri предлагает множество свойств https://docs.microsoft.com/en-us/dotnet/api/system.uri?view=netframework-4.7.2

Попробуйте это

string val = HttpContext.Current.Request.Url.AbsolutePath;

или в вашем случае, если ваша переменная запроса является объектом HttpRequest, попробуйте:

string val = request.Url.AbsolutePath;
...