web-dev-qa-db-ja.com

SharePointは、コードビハインドで現在のページの完全なURLを取得します

SharePointでは、コードビハインドから現在のページのURLをどのように取得しますか?例えばblah.aspxページが含まれています...

SPContext.Current.Web.Urlは http:// vm/en / を提供します

http://vm/en/Pages/blah.aspx で必要です

22
raklos

HttpContextを取得してからHttpContext.Current.Request.Urlを使用できます

SPContext.Current.Webは、表示中のページを囲むSPWebであるため、そのURLはページではなくWebのURLです。

35
Yuliy

試してください: SPContext.Current.File . rl

HttpContext.Current . Request.Url を使用することもできます

9
Alex Angas

試してください:SPContext.Current.Web.Url + "/" + SPContext.Current.File.Url

3
Dinh Gia Khanh

これにより、SPContext.Current.ListItemServerRelativeUrlに必要なものが返されます。

1
pns

_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
Oleg Savelyev
 string filename = Path.GetFileName(Request.Path);
0
Mohamed.Abdo