Asp.net mvc 5 如何在MVC5中将模型返回到ajax调用

Asp.net mvc 5 如何在MVC5中将模型返回到ajax调用,asp.net-mvc-5,asp.net-ajax,Asp.net Mvc 5,Asp.net Ajax,我的目标是用另一个表中的数据限制一些输入,所以我尝试用ajax调用来实现 这是控制器: [HttpPost] public JsonResult getProductbyId(string data) { int id = Convert.ToInt32(data); tblProducto producto = db.tblProducto.Where(p => p.Id == id).SingleOrDefault();

我的目标是用另一个表中的数据限制一些输入,所以我尝试用ajax调用来实现

这是控制器:

[HttpPost]
    public JsonResult getProductbyId(string data)
    {
        int id = Convert.ToInt32(data);
        tblProducto producto = db.tblProducto.Where(p => p.Id == id).SingleOrDefault();

        return Json(producto);
    }
这是ajax调用

    var id_producto = $('#id_producto option:selected').val();
$.ajax({
    url: '/Ventas/getProductbyId',
    type: 'post',
    data: { data:id_producto },
    success: function (data) {
        alert(data.cantidad);
    },
    error: function (data) {
        alert('La llamada (ajax)getProductbyId ha fallado');
    }
});

但我收到了错误警报。

尝试以下操作:更改控制器中的返回格式

在控制器中:

[HttpPost]
public JsonResult getProductbyId(string data)
{
    int id = Convert.ToInt32(data);
    tblProducto producto = db.tblProducto.Where(p => p.Id == id).SingleOrDefault();
    return Json(producto, JsonRequestBehavior.AllowGet);
}
在Jquery(ajax调用)中:


尝试以下操作:更改控制器中的返回格式

在控制器中:

[HttpPost]
public JsonResult getProductbyId(string data)
{
    int id = Convert.ToInt32(data);
    tblProducto producto = db.tblProducto.Where(p => p.Id == id).SingleOrDefault();
    return Json(producto, JsonRequestBehavior.AllowGet);
}
在Jquery(ajax调用)中: