从VS中运行时获取没有端口的URL,或者在IIS中运行时获取没有应用程序名称的URL
本文关键字:URL 获取 运行时 IIS 应用程序 VS 或者 | 更新日期: 2023-09-27 17:49:55
当我从调试器中运行时,我的应用程序的URL是这样的
http://localhost:52230/
在IIS中:
http://localhost/MyApp
或者,当我从另一台电脑上浏览时,
http://192.168.168.11/MyApp
Where MyApp = my application name.
是否有一种方法,使用剃刀语法,只得到http://localhost
或http://192.168.168.11
?
我尝试@Url.Content("~/)
,但它返回我http://localhost:52230/
Try
@(Context.Request.Url.Scheme + "://" + Context.Request.Url.DnsSafeHost)
你只需要做::
var _rootUrl = '@Url.Content("~")';
使用此函数获得独立于根的正确路由:
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");
当我查看HttpContext。请求头有一个名为"主机"的头,它给了我Localhost(我通过iis Localhost运行我的),所以对你来说,这应该给你Localhost/MyApp,当我从另一台计算机上运行它时,这个主机给了我iis正在运行的计算机的ip。
否则在请求中。Url是3个属性,给我你需要的,DnssafeHost (Nilzor提到的)授权和主机,我认为最简单的方法是通过
@HttpContext.Current.Request.Url.Host.ToString()