SharePoint получает полный URL текущей страницы в коде позади - PullRequest
22 голосов
/ 09 октября 2009

В SharePoint как вы получаете URL страницы, на которой вы находитесь, из кода? например с включенной страницей blah.aspx ...

SPContext.Current.Web.Url дает http://vm/en/

Мне нужно это с http://vm/en/Pages/blah.aspx

Ответы [ 8 ]

35 голосов
/ 09 октября 2009

Вы все еще можете получить HttpContext и затем использовать HttpContext.Current.Request.Url

SPContext.Current.Web - это SPWeb, окружающий страницу, на которой вы находитесь, и, следовательно, его URL - это URL-адрес сети, а не страницы.

9 голосов
/ 09 октября 2009

Попробуйте: SPContext.Current.File . Url

Вы также можете использовать HttpContext.Current . Request.Url

3 голосов
/ 09 марта 2010

Попробуйте: SPContext.Current.Web.Url + "/" + SPContext.Current.File.Url

1 голос
/ 26 ноября 2013

Я использую обходной путь, который охватывает случаи _layouts

/// <summary>
/// Builds real URL considering layouts pages.
/// </summary>
private Uri CurrentUrl
{
    get
    {
        return Request.Url.ToString().ToLower().Contains("_layouts")
            ? new Uri(
                SPContext.Current.Site.WebApplication.GetResponseUri(
                    SPContext.Current.Site.Zone).ToString().TrimEnd('/')
                + Request.RawUrl) 
            : Request.Url;
    }
}
1 голос
/ 27 июня 2013

этот код работал для меня, для страниц под _layouts, а также для 'обычных' страниц сайта:

        string thisPageUrl;
        if (HttpContext.Current.Request.Url.ToString().ToLower().Contains("_layouts"))
        {
            thisPageUrl = SPContext.Current.Web.Url + context.Request.Path; //note: cannot rely on Request.Url to be correct !
        }
        else
        {
            thisPageUrl = HttpContext.Current.Request.Url.ToString();
        }
1 голос
/ 15 февраля 2011

Это должно вернуть то, что вам требуется. SPContext.Current.ListItemServerRelativeUrl

0 голосов
/ 25 июня 2013
string PageTitle=SPContext.Current.File.Title
0 голосов
/ 25 июня 2013
 string filename = Path.GetFileName(Request.Path);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...