在SharePoint中,如何从后面的代码中获取您所在页面的网址? 例如包含blah.aspx页面......
SPContext.Current.Web.Url提供http://vm/en/
答案 0 :(得分:35)
您仍然可以获取HttpContext,然后使用HttpContext.Current.Request.Url
SPContext.Current.Web是围绕您所在页面的SPWeb,因此其URL是Web的URL,而不是页面。
答案 1 :(得分:9)
答案 2 :(得分:3)
尝试:SPContext.Current.Web.Url +“/”+ SPContext.Current.File.Url
答案 3 :(得分:1)
这应该返回您需要的内容SPContext.Current.ListItemServerRelativeUrl
答案 4 :(得分:1)
此代码适用于我,适用于_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();
}
答案 5 :(得分:1)
我使用涵盖_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;
}
}
答案 6 :(得分:0)
string filename = Path.GetFileName(Request.Path);
答案 7 :(得分:-1)
string PageTitle=SPContext.Current.File.Title