jQuery AJAX参数未传递给MVC

我有点陷入可能是常见的情况,但在解决方案方面找不到多少。

我将一个int参数传递给MVC控制器方法,期待Json响应。 问题是,在客户端填充时,参数在服务器端未被识别,并被解释为null。

这是代码:

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 ),但同样,这似乎没有帮助。 问题出在翻译的某个地方。 想法?

data需要是Javascript对象文字:

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