SharePoint получает полный URL-адрес текущей страницы в коде В SharePoint, как вы получаете URL-адрес страницы, на которой вы находитесь, из кода? например с включенной страницей blah.aspx... SPContext.Current.Web.Url дает http://vm/en/ Мне нужно это с http://vm/en/Pages/blah.aspx Ответ 1 Вы все еще можете получить HttpContext, а затем используйте HttpContext.Current.Request.Url SPContext.Current.Web - это SPWeb, окружающий страницу, на которой вы находитесь, и, следовательно, ее URL-адрес является URL-адресом Сети, а не страницей. Ответ 2 Попробуйте: SPContext.Current.File. Url Вы также можете использовать HttpContext.Current. Request.Url Ответ 3 Попробуйте: SPContext.Current.Web.Url + "/" + SPContext.Current.File.Url Ответ 4 Это должно вернуть то, что вам требуется SPContext.Current.ListItemServerRelativeUrl Ответ 5 этот код работал у меня, для страниц под _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(); } Ответ 6 Я использую обходное решение, которое охватывает случаи llayouts /// <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; } } Ответ 7 string filename = Path.GetFileName(Request.Path); Ответ 8 string PageTitle=SPContext.Current.File.Title
Ответ 1 Вы все еще можете получить HttpContext, а затем используйте HttpContext.Current.Request.Url SPContext.Current.Web - это SPWeb, окружающий страницу, на которой вы находитесь, и, следовательно, ее URL-адрес является URL-адресом Сети, а не страницей.
Ответ 2 Попробуйте: SPContext.Current.File. Url Вы также можете использовать HttpContext.Current. Request.Url
Ответ 5 этот код работал у меня, для страниц под _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(); }
Ответ 6 Я использую обходное решение, которое охватывает случаи llayouts /// <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; } }