2009-11-08 170 views
0

我是一個web開發新手,所以我有一些問題,首先什麼是〜,/在網址上的意思是什麼?我真正的問題在我的javascript代碼我在做一些Ajax調用使用jQuery像資源的url路徑

$.ajax({ 
     ... 
     url: '/Membership/Login', 
     ... 
    }); 

沒有與我需要將數據發送到一個登錄操作方法的成員控制器。當我將這個項目發佈到IIS(我的應用程序位於wwwroot的xxx文件夾下)時,我得到了錯誤的URL地址。

我得到:

http://localhost/Membership/Login 

我期待:(因爲我的應用程序是在XXX文件夾)

http://localhost/xxx/Membership/Login 

注:我不想XXX添加到所有的URL。

回答

2

在URL中使用〜並調用ResolveUrl方法時,它將放入應用程序的路徑。您可以通過在你的aspx頁面做到這一點:

<%=ResolveUrl("~/Membership/Login")%> 

這會給你的路徑

/xxx/Membership/Login 

,你現在就可以給你的JavaScript。

+0

我不能使用<% %>語法,因爲js代碼在.js文件中,有沒有關於這個的任何建議。 – Yucel 2009-11-09 10:53:36

+0

通常你必須從你的aspx頁面創建一個對象或調用一個方法,所以在該頁面上使用<% %>並將url作爲參數傳遞給你的js。 – 2009-11-09 10:56:08

0

當你使用表格「/ some/url」時,你說帶我去那個URL的web服務器根目錄。如果您想避免將「xxx」添加到您的URL,您需要更改Web服務器根目錄,在IIS中爲該名稱創建域名和規則,或者使用某種函數調用來生成要使用的URL。

這三者中最容易的是更改服務器上的webroot。

1

使用斜槓會使網址相對於Web服務器的根目錄。如果你想要它相對於當前的網址,只需刪除斜槓字符。儘管代字號字符在ASP.NET(和UNIX路徑)中的服務器端控件中有意義,但它在URL中沒有特殊含義。在ASP.NET的上下文中,它意味着將相對於應用程序的路徑,可能或不可能是Web服務器根目錄。在你的標記中,它應該被刪除,或者不被你使用,或者只在被ASP.NET框架取代的上下文中使用,例如服務器端控件。