weixin_33693070 2014-01-21 08:30 采纳率: 0%
浏览 62

JSON发送的空数据

For unknown reason for me data received by my function in controller is always null. My data is translated into json properly. Data is send but not received (sending ends with success).

Here You can see my Ajax function

$.ajax({
    url: "/Devices/Read",
    contentType: "text",
    type: "POST",
    datatype: "json",
    data: ko.toJSON(self),
    error: function (xmlHttpRequest, errorText, thrownError) {
        console.log("error")
    },
    success: function (data) {
        if (data != null) {
            console.log("success");
        }
    }
});

here my function in controller:

[HttpPost]
public ActionResult Read(string data)
{
    return Json(new Object());
}

I tried:

  1. changing parameter type to: Object, String
  2. changing contentType to : text, application/json; charset=utf-8

Still no efects. Can anyone suggest me where should I search for mistake?

UPDATE: After changing method declaration to:

public ActionResult Read(object[] data, string DeviceUser, string DeviceId, string number)

Last three strings are OK but first object consist of proper number of elements but they are null. in JS they are alements in array of classes

structure of my JS objects:

  var Eq = function (name, price) {
    var self = this;
    self.DeviceSerialNumber = ko.observable();
    self.Batch = ko.observable();

};
var ViewModel = function () {
    var self = this;
    self.data = ko.observableArray([]);
    self.DeviceUser = ko.observable();
    self.DeviceId = ko.observable();
    self.number = ko.observable(1);
};
  • 写回答

3条回答 默认 最新

  • weixin_33674437 2014-01-21 08:45
    关注

    In your controller action, why do you:

    return RedirectToAction("Index"); 
    

    I think you may want to:

    return Json(data);
    
    评论

报告相同问题?