我想写一个小帮手方法,返回网站的基本URL。这是我想出来的:
public static string GetSiteUrl()
{
string url = string.Empty;
HttpRequest request = HttpContext.Current.Request;
if (request.IsSecureConnection)
url = "https://";
else
url = "http://";
url += request["HTTP_HOST"] + "/";
return url;
}
你能想到这里面有什么错误吗?有没有人能改进这一点?
发布于 2011-09-14 16:39:30
试试这个:
string baseUrl = Request.Url.Scheme + "://" + Request.Url.Authority +
Request.ApplicationPath.TrimEnd('/') + "/";
发布于 2012-12-14 17:25:58
string baseUrl = Request.Url.GetLeftPart(UriPartial.Authority)
就是这样;)
发布于 2014-12-15 04:08:42
不幸的是,Uri
的PCL版本不支持流行的GetLeftPart
解决方案。然而,GetComponents
是这样的,所以如果您需要可移植性,这应该可以做到这一点:
uri.GetComponents(
UriComponents.SchemeAndServer | UriComponents.UserInfo, UriFormat.Unescaped);
https://stackoverflow.com/questions/7413466
复制相似问题