2009-09-12 146 views
3

我有點卡住了可能是常見的情況,但找不到很多解決方案。未將jQuery AJAX參數傳遞給MVC

我傳遞單個int參數到MVC控制器的方法,期望的JSON響應回來。問題是,該參數在客戶端被填充時,在服務器端沒有被識別並被解釋爲空。

下面的代碼:

function getBatches(p) { 
$.ajax({ 
    type: "GET", 
    data: "{'ProjectID': " + p + "}", 
    url: "/Home/Batches", 
    success: function(msg) { 
     populateBatches(msg); 
    } 
}); 

}

p的值是一個整數。在服務器端,代碼如下所示:

[AcceptVerbs(HttpVerbs.Get)] 
public JsonResult Batches(int ProjectID) 
{ 
    return Json(TimeHelper.GetBatchesForProject(ProjectID)); 
} 

我試着稍微改變它,這樣服務器端int參數爲空(即int? ProjectID),但同樣,這似乎並沒有幫助。問題出在翻譯的某個地方。想法?

回答

12

data需求是一個Javascript對象字面:

$.ajax({ 
    type: "GET", 
    data: {ProjectID: p}, 
    url: "/Home/Batches", 
    success: function(msg) { 
     populateBatches(msg); 
    } 
}); 
+1

棒極了!把它在一個。幹得好,那個男人! – 2009-09-12 10:47:51

+2

沒有爲我工作。這隻適用於整數嗎? – micahhoover 2012-08-23 12:36:26