我需要在javascript代码中的razor页面中获取网站根网址:
...
var siteRootUrl = '@Url.Content("~")';
...
但我得到的只是'/'。>
答案 0 :(得分:54)
使用端口获取当前主机(mysite.com,www.mysite.com或localhost:9876)
Request.Url.Authority
获取当前的应用程序文件夹:(/或/ appfolder /)
Url.Content("~/")
混合它们?
String.Format("{0}://{1}{2}",Request.Url.Scheme, Request.Url.Authority,Url.Content("~/"))
OR(正如torm指出的那样)
Url.Action("", null, null, Request.Url.Scheme)
Url.Action("", null, null, "http")
Url.Action("", null, null, "https")
生成操作网址:
Url.Action("About","Home",null,"http")
答案 1 :(得分:8)
我知道获得AbsoluteUri的最简单方法是
@Url.Action("", null, null, "http")
答案 2 :(得分:2)
@Url.Content()
返回根RELATIVE路径,即路径根目录的路径。
因此,如果您的网站位于www.foo.com/site,则Url.Content()会返回/ site
伊斯梅尔的回答是正确的。您需要解析一个完整的URL。
答案 3 :(得分:1)
@ Url.Content返回正确的相对URL。 以下代码为您提供了各种选项,通过代码获取URL,绝对Url通过代码,绝对通过javascript:
<div>Site 'Relative Url = '@Url.Content("~")'</div>
<div>Site 'Absolute Url = '@System.Web.HttpContext.Current.Request.Url.AbsoluteUri'</div>
<script type="text/javascript">
alert("site URL via js = " + location.href);
</script>
你会得到类似的东西:
网站'相对网址='/' 网站'Absolute Url ='http:// localhost:14763 /'
以及显示href / absolute Url的JS警告
答案 4 :(得分:0)
要获取完整网址,请使用@Request.Url.ToString()
。
您可以解析它,也可以使用HttpRequest.Url
属性上的其他方法之一,即System.Uri
个对象。