我对MVC很新,我对MVC / AJAX调用有疑问。
我试图从MVC Controller获取数据,但它一直说传入的参数是NULL。
我的Javascript调用如下,我硬编码id:1245作为测试。
$.ajax({
type: "GET",
url: 'MDT/Detail',
data: JSON.stringify({ id: 1245 }),
contentType: "application/json",
dataType: "JSON",
success: function (data) {
console.log(data);
},
fail: function (data) {
}
});
以下是Controller中的代码..
[Route("MDT/Detail/{id}")]
public JsonResult Detail(int? id)
{
ITS.Models.ComputerDetail cp = GetDataFromDatabase(id.Value);
return Json(cp, JsonRequestBehavior.AllowGet);
}
我已检入Firebug,参数传递正确如下:
但它为“id”参数
提供了以下错误Exception Details: System.InvalidOperationException: Nullable object must have a value.
我无法弄清楚我做错了什么。你能帮我解决这个错误吗?
如果我使用此网址(http://localhost:6481/MDT/Detail?id=1245),则会返回JSON数据。但如果我使用(http://localhost:6481/MDT/Detail/1245),它会显示与JQuery AJAX调用相同的错误。那么,它必须是路由问题吗?
答案 0 :(得分:0)
将data: JSON.stringify({ id: 1245 }),
替换为data: { id: 1245 },
有关ajax的更多信息,请in it's documentation
答案 1 :(得分:-1)
var youridvalue = 1254;
$.ajax({
type: "POST",
url: '@Url.Content("~/MDT/Detail")?id=' + youridvalue,
contentType: "application/json",
dataType: "JSON",
success: function(data) {
console.log(data);
},
fail: function(data) {}
});