0

我正在尝试对控制器方法进行 AJax 调用,无论我尝试什么,参数都是 null。我已经关注了所有类似的 SO 帖子,但无济于事。对不起,如果答案在那里,我找不到它。我的代码是...

阿贾克斯调用

    var sguid = $(nTr).attr('id');
    $.ajax({
    url: "/Dashboard/Reporting/GetBlacklistedSoftwareItems",
    type: 'POST',
    dataType: 'json',
    data: JSON.stringify({guid: sguid}),
    statusCode: {
        404: function() {
    alert("page not found");
        }
    },
    success: function (data) {
    //DO Something
    },
    error: function () {
        alert("error");
    }
});

控制器方法

public JsonResult GetBlacklistedSoftwareItems(string guid)
{
    List<DeviceSoftware> ldevice = new List<DeviceSoftware>();
    Guid i = Guid.Parse(guid);
    ReportMethods reportingMethods = new ReportMethods();
    ldevice = reportingMethods.GetNonCompliantApplicationReport(CompanyId);

    DeviceSoftware ds = ldevice.Find(x => x.Device.Guid == i);
    List<DeviceApplication> da = new List<DeviceApplication>();
    if (ds != null)
    {
        da = ds.DeviceApplications;
    }

    return Json(da, JsonRequestBehavior.AllowGet);
}

该方法正在被击中,它只是guid一直nullsguid确实保存了我试图传递的数据。有人能告诉我我错过了什么吗?

4

3 回答 3

1

反对我读到的一切,我改变了

data: JSON.stringify({guid: sguid}),

data: {guid: sguid},

工作中。

于 2012-11-08T14:58:35.420 回答
0

弗雷德,

您需要将 GetBlacklistedSoftwareItems 设为 post 方法....

试试这个...

[HttpPost] public JsonResult GetBlacklistedSoftwareItems(string guid) {

于 2012-11-08T14:59:33.953 回答
0

需要做一些小的改变。

var sguid = $(nTr).attr('id');
    $.ajax({
    url: "/Dashboard/Reporting/GetBlacklistedSoftwareItems",
    contentType: "application/json; charset=utf-8" ,//This is very important 
    type: 'POST',
    dataType: 'json',
    Data: JSON. stringify ({guild: squid}),
    statusCode: {
        404: function() {
    alert("page not found");
        }
    },
    success: function (data) {
    //DO Something
    },
error: function () {
    alert("error");
}

});

contentType: "application/json; charset=utf-8"添加到 $.Ajax 调用中。:)

于 2013-04-25T03:47:28.930 回答