2014-03-12 76 views
0
運行時

我的應用程序的URL看起來像,當我從調試沒有端口獲取URL時,或沒有應用程序的名稱在IIS

http://localhost:52230/ 

和IIS運行:

http://localhost/MyApp 

或者,當我從另一臺PC瀏覽時,

http://192.168.168.11/MyApp 

Where MyApp =我的應用程序的名稱。

有沒有一種方法,使用剃刀語法,得到http://localhosthttp://192.168.168.11只?

我試圖@Url.Content("~/)但它返回我http://localhost:52230/

+0

你應該能夠獲得通過'http:// localhost' ofter您發佈的項目,如果你將其設置爲IIS中的默認網站。 –

+0

但是我需要一些能在兩種情況下都能正常工作的東西 –

+0

你想在代碼中使用它還是僅僅在瀏覽器中看到它? –

回答

2

嘗試

@(Context.Request.Url.Scheme + "://" + Context.Request.Url.DnsSafeHost) 
0

當我看到通過HttpContext.Request頭有一個叫做「主機」頭,讓我本地主機(我通過我的運行iis Localhost)因此,對於你來說,這應該給你Localhost/MyApp,當我從另一臺計算機上運行它時,這臺主機給我的是運行iis的計算機的ip。

在Request.Url

否則有3個屬性,讓我你需要什麼,DnssafeHost管理局和主機(由Nilzor爲mentinoed),我覺得得到它會通過

@HttpContext.Current.Request.Url.Host.ToString() 
0

您只需最簡單的方法需要做::

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"); 
相關問題