2011-05-31 52 views
0

在開發過程中,我製作了一個Ajax帖子,它在開發中工作。但是,當我將它放在測試服務器上時,它不起作用,因爲IIS已將應用程序分配給一個子文件夾,而且在我的開發環境中缺少這個文件夾。 我已經找到了解決辦法(見下文),但我第一個承認這不應該是解決方案,因爲我必須記得每次進行Ajax調用時都要爲url調用一個函數。 必須有更好的方法。然而,代碼會告訴你我正在修復的東西;Ajax Post中的Url路徑名問題

function OperationsManagerFlagClickFunc(userId) { 
    $.ajax({ 
     url: GetUrl("/Users/UpdateOperationsManagerFlag"), 
     type: "POST", 
     data: { "userId": userId }, 
     success: function (data) { } 
    }); 
} 

function GetUrl(path) { 
    var pathArray = window.location.pathname.split('/'); 
    if (pathArray[1] === "ITOC") 
     return "/ITOC" + path; 
    else 
     return path; 
} 

回答

1

如果在.aspx文件中的JavaScript,您可以生成網址是這樣的:

function OperationsManagerFlagClickFunc(userId) { 
    $.ajax({ 
     url: "<%= Url.Action("UpdateOperationsManagerFlag","User") %>", 
     type: "POST", 
     data: { "userId": userId }, 
     success: function (data) { } 
    }); 
} 
+0

非常感謝你爲。我必須使控制器參數=「用戶」,但除此之外它工作。 – arame3333 2011-05-31 14:48:46

0

爲什麼不能有一個變量單獨定義,像SITEURL,將舉行您的網址,用2臺服務器上不同的價值? 然後只是做:

url: siteUrl + "/Users/UpdateOperationsManagerFlag"