Wrong URL all the time
-
06-12-2019 - |
Domanda
I have an application page, added to a site collection. I open the page by the url: http://servername/sitecollection/_layout/sc/page.aspx
I have added some links, which should open the SAME Url with an additional query string. But it doesn't work. I've tried alot of methods, but all the links routes me to http://servername/_layout/sc/page.aspx.
So how can I programmaticly find the right url?
I've tried Http.Context, Request and so on, but one works. :\
So does anyone have an Idea?
Best Regards
Jan
PS: My system is SP2010 Standard Edition Service Pack 2.
Edit:
Here are some of the Methods I have tried:
return SPContext.Current.Site.MakeFullUrl(SPContext.Current.Web.ServerRelativeUrl);
return SPContext.Current.Site.MakeFullUrl(SPContext.Current.Web.ServerRelativeUrl);
return HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Path);
return SPContext.Current.File.Url;
return "http://" + Request.ServerVariables["SERVER_NAME"] + Request.ServerVariables["URL"];
Soluzione
I prefer to use following:
SPUtility.GetServerRelativeUrlFromPrefixedUrl("~sitecollection/_layouts/sc/page.aspx")
SPUtility.GetServerRelativeUrlFromPrefixedUrl("~site/_layouts/sc/page.aspx")
First one for site collection relative url and the other one for site relative url.
Altri suggerimenti
You can simply use:
/_layout/sc/page.aspx
If you need the context of the current site in the application page, use:
SPContext.Current.Web.Url + "/_layout/sc/page.aspx"