URL-адрес asp.net минус имя_папки и строка запроса - PullRequest
2 голосов
/ 28 февраля 2011

Я искал в Интернете простое и прямолинейное решение для следующей проблемы, но, похоже, я не могу найти ничего подходящего для моих нужд.

У меня есть сайт asp.net со многими подкаталогами следующим образом.

и т.д ...

На каждой странице моего сайта мне нужно извлечь URL-адрес страницы без имени файла и строки запроса.

Так что если имя страницы было http://mysite.com/dir1/subdir2/mypage.aspx?param=5&param2=9

Мне потребуется следующее http://mysite.com/dir1/subdir2/ Не могу найти какие-либо свойства объекта httprequest, которые делают этот формат URL легкодоступным.

Ответы [ 3 ]

2 голосов
/ 28 февраля 2011

Взгляните на это . Он должен дать вам все, что вам нужно, особенно Url.Segments.

0 голосов
/ 21 октября 2011

Это также работает:

System.IO.Path.GetDirectoryName(url).Replace(@"\","/");
0 голосов
/ 28 февраля 2011

Вы правы, такая вещь не готова, поэтому вам нужно сделать это самостоятельно. Один рецепт:

public string GetSubFolderURL()
{
    string url = "http";
    if (string.Equals(Request.ServerVariables["HTTPS"], "ON", StringComparison.CurrentCultureIgnoreCase))
        url += "s";
    url += "://";
    url += Request.ServerVariables["SERVER_NAME"];
    int port;
    if (Int32.TryParse(Request.ServerVariables["SERVER_PORT"], out port) && port != 80)
        url += ":" + port;
    url += Request.ServerVariables["SCRIPT_NAME"];
    return url.Substring(0, url.LastIndexOf("/") + 1);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...