我有点陷入可能是常见的情况,但在解决方案方面找不到多少。
我将一个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
)但是再次,这似乎没有帮助。问题出在翻译的某个地方。想法?
答案 0 :(得分:13)
data
需要是Javascript对象文字:
$.ajax({
type: "GET",
data: {ProjectID: p},
url: "/Home/Batches",
success: function(msg) {
populateBatches(msg);
}
});