2013-10-02 152 views
0

我在默認網站的IIS上託管了一個MVC應用程序。所以我可以通過瀏覽到http://localhost/appname來訪問應用程序。JavaScript中的ASP.net MVC應用程序URL

我也有一個URL重寫模塊,它返回相同的網頁,如果輸入的網址是這樣 http://localhost/appname/request/*

我想在我的index.html文件,以獲取路徑URL(http://localhost/appname/)。我使用的是剃刀語法。因此,如果我在不同的路徑或不同的應用程序名下託管網站,我的ajax查詢和css不會受到影響。

如何在index.html文件的javascript中獲取http://localhost/appname

+0

RequestContext..ApplicationPath的剃刀,window.location.hostname主機名 –

回答

4

您不能在JavaScript中訪問完整的應用程序路徑(即,www.hostname.com/appname/),因爲它不知道服務器端實現,它只是一個JavaScript的URL。

您可以使用@Url.Content("~/...")將應用程序路徑注入您的頁面。

<script type="text/javascript"> 
    var appPath = @Url.Content("~/"); 
</script> 
<script type="text/javascript" src="@Url.Content("~/scripts/main.js")"></script> 

在上文中,main.js將能夠訪問appPath變量。

+0

我用,我得到'APPPATH = HTTP://主機名/應用程序的名字/請求/'。基本上@ Url.Content會給你從客戶端收到的任何請求服務器。它不會向你發送應用程序路徑。 – lostpacket

+0

我會嘗試使用RequestContext.ApplicationPath。你說得對,這是一個服務器端的實現。 – lostpacket

2
var base = "@Request.Url.GetLeftPart(UriPartial.Authority)"; 
var path = "@Request.ApplicationPath"; 
var baseURL = base + path + "/"; 

Reference

相關問題