![](/img/trans.png)
[英]Conflict when running IIS and WCF application listening on the same port (443)
[英]Getting URL without port when running from VS, or without application name when running in IIS
从调试器运行时,应用程序的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/
尝试
@(Context.Request.Url.Scheme + "://" + Context.Request.Url.DnsSafeHost)
当我查看HttpContext.Request标头时,有一个名为“主机”的标头为我提供了Localhost(我通过iis Localhost运行我的主机),所以当你从另一台计算机上运行该主机时,它应该给你Localhost / MyApp我的计算机iis的ip正在运行。
否则,在Request.Url中有3个属性可以满足您的需求,即DnssafeHost(由Nilzor指导),授权和主机,我认为最简单的方法是通过
@HttpContext.Current.Request.Url.Host.ToString()
您只需要做::
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");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.