2009-12-04 64 views
0

目前,我有我的觀點中的以下IIS6 JavaScript的路由問題

function loadData() { 
    var url = "/Testx.mvc/GetData"; 
    var id = "111111"; 
    var format = "html"; 

    $.ajax({ 
     url: url, 
     type: "POST", 
     dataType: format, 
     data: "id=" + id, 
     success: populateResults 
    }); 
} 

function populateResults(result) { 
    $('#results').html(result); 
} 

我也有一個叫TestxController與所謂的GetData(INT?ID)的動作方法控制。 現在上面的ajax調用在Visual Studio 2008的內置開發服務器上工作,但是當我切換到使用IIS webserver時,它不會。似乎沒有找到路由,因爲我試圖在GetData上放置一個斷點,但它甚至沒有到達那裏。 有誰知道我需要做什麼來解決這個問題?

編輯:我也試過在http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx討論的通配符映射方法,它的工作很完美。 (當然,我不得不從URL中刪除.mvc) 有沒有什麼辦法可以讓它與.mvc擴展一起使用?

謝謝

+1

沒關係我。感覺頭暈。答案完全是蹩腳的。 ^^ – 2009-12-04 00:05:02

+0

一些提示=>使用$ .get,使用JSON傳遞數據(數據:{id:id}),使用route debugger。可能有用。 – 2009-12-04 00:10:29

+0

擰緊它。我不明白如何在評論中很好地格式化超鏈接。 – 2009-12-04 00:12:03

回答

1

Testx.mvc位於您的Web服務器的根目錄嗎?如果您的應用程序在IIS上的虛擬目錄中運行,那麼正確的路徑將類似/YourApp/Testx.mvc/GetData

Visual Studio內置網絡服務器可能將Testx.mvc放在根目錄下,這就是它在VS中工作的原因。

如果是這種情況,請嘗試使用相對路徑Testx.mvc/GetData而不是/Testx.mvc/GetData

0

是否有一個實際的函數稱爲「回調」?只是問,因爲它似乎可能意味着成功地迴應稱爲「populateResults」。

試試這個也許是:

$.ajax({ 
    url: url, 
    type: "POST", 
    dataType: format, 
    data: "id=" + id, 
    success: function(results){$('#results').html(result)} 
}); 

你檢查你的ISS設置,看看它是否支持POST操作?它可能只是指定GET操作...參見http://haacked.com/images/haacked_com/WindowsLiveWriter/07de283cb368_B754/application-mappings_3.png

+0

哦,沒關係,似乎你修改了編輯 – SimonDever 2009-12-04 00:09:41

+0

是的,對不起, – zSynopsis 2009-12-04 00:10:33

+0

是的,沒有改變任何東西。不過謝謝 – zSynopsis 2009-12-04 01:45:43