当我从调试器运行时,我的应用程序的URL看起来像
http://localhost:52230/
在IIS中:
http://localhost/MyApp
或者,当我从另一台PC浏览时,
http://192.168.168.11/MyApp
MyApp =我的应用程序名称。
是否有办法使用剃刀语法仅获取http://localhost
或http://192.168.168.11
?
我尝试@Url.Content("~/)
,但它返回http://localhost:52230/
答案 0 :(得分:2)
尝试
@(Context.Request.Url.Scheme + "://" + Context.Request.Url.DnsSafeHost)
答案 1 :(得分:0)
当我查看HttpContext.Request标头时,有一个名为“Host”的标头给我Localhost(我通过iis Localhost运行)所以对你来说这应该给你Localhost / MyApp,当我从另一台计算机运行它时这台主机给了我iis正在运行的计算机的ip。
否则,在Request.Url中有3个属性可以提供我所需要的东西,DnssafeHost(由Nilzor提供)作为权威和主持人,我认为获得它的最简单方法是通过
@HttpContext.Current.Request.Url.Host.ToString()
答案 2 :(得分:0)
你只需做::
var _rootUrl = '@Url.Content("~")';
使用此函数在root上正确连接路径:
function rootUrl(url) {
var _rootUrl = '@Url.Content("~")';
var x = url;
if (url.indexOf(_rootUrl) != 0) {
x = _rootUrl + "/" + url;
x = x.replace(/\/\//g, "/").replace(/\/\//g, "/");
}
return x;
};
将其用作::
rootUrl("ControllerName/ActionName");