SharePointでは、コードビハインドから現在のページのURLをどのように取得しますか?例えばblah.aspxページが含まれています...
SPContext.Current.Web.Urlは http:// vm/en / を提供します
HttpContextを取得してからHttpContext.Current.Request.Url
を使用できます
SPContext.Current.Webは、表示中のページを囲むSPWebであるため、そのURLはページではなくWebのURLです。
試してください: SPContext.Current.File . rl
HttpContext.Current . Request.Url を使用することもできます
試してください:SPContext.Current.Web.Url + "/" + SPContext.Current.File.Url
これにより、SPContext.Current.ListItemServerRelativeUrlに必要なものが返されます。
_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;
}
}
string filename = Path.GetFileName(Request.Path);