如何在我的视图中从控制器获取JSON对象并在Jquery函数中使用它?

时间:2013-09-19 07:14:03

标签: json jquery asp.net-mvc-4

我想从我的控制器返回JSON并在我的视图中获取它。这是我的代码,当我调试它时。转到我的控制器并获取值,但在我的j查询代码中没有任何事情发生。当我通过firebug调试我的j查询代码时它不会运行函数(数据)。我的代码有什么问题?我希望从服务器获取部分小册子的对象。它是一行数据并将此行添加到我的Telerik mvc网格中。提前提醒 它是我的控制器代码:

 #region dynamic_add_row_to_grid
     private PartBooklet GetPartBooklet( int sparepart ) {
        return _PartBookletService.GetList().Where(m => m.SparePartCode == sparepart).FirstOrDefault();
     }

     [AcceptVerbs(HttpVerbs.Get)]
     public JsonResult GetItems( int sparepart ) {
         var PartbookletList = this.GetPartBooklet(sparepart);
         return Json(PartbookletList, JsonRequestBehavior.AllowGet);
     }
     #endregion

及其jquery代码:

    $("#btnadd").button().click( function () {
        alert("button");
        var sparepartcode = $("#SparePartCode").val();
        alert( sparepartcode );
        $.getJSON("../Shared/GetItems", { sparepart: sparepartcode }, function( data ) {
           alert( data.val );
           alert("PartbookletList");
           var grid = $('#InvoiceItemGrid').data('tGrid');
           grid.dataBind( data );
        }).error( function () {
           alert("JSON call failed");
        });

        $( function () {
           $.ajaxSetup({
           error: function (jqXHR, exception) {
              if ( jqXHR.status === 0 ) {
                  alert('Not connect.\n Verify Network.');
              } else if ( jqXHR.status == 404 ) {
                  alert('Requested page not found. [404]');
              } else if ( jqXHR.status == 500 ) {
                  alert('Internal Server Error [500].');
              } else if (exception === 'parsererror' ) {
                  alert('Requested JSON parse failed.');
              } else if ( exception === 'timeout' ) {
                  alert('Time out error.');
              } else if ( exception === 'abort' ) {
                  alert('Ajax request aborted.');
              } else {
                  alert('Uncaught Error.\n' + jqXHR.responseText);
              }
            }
         });
     });
  });

1 个答案:

答案 0 :(得分:0)

$("#btnadd").button().click( function () {
    //alert("button");
    var sparepartcode = $("#SparePartCode").val();

    $.ajax({
            url: "/Shared/GetItem?sparepart=" + sparepartcode,
            type: 'GET',
            success: function(a, b, data) {
                //alert( data.val );
                alert("PartbookletList");
                var grid = $('#InvoiceItemGrid').data('tGrid');
                grid.dataBind( data );
            },
            error: function(jqXHR, textStatus, errorThrown) {
                alert("JSON call failed");
            },
            // other options and setup ...
    });
});

请注意,在成功的ajax请求中,它是包含您需要的实际数据的第3个参数。