2009-09-12 152 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