Недопустимый примитив JSON при отправке POST-запроса объектов stringify - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть функция ajax, куда я отправляю два объекта stringify, как это:

function SaveOffsetOrder() {

       var temp = sessionStorage.getItem('book');
       var viewName = $.parseJSON(temp);
       var BookObj = JSON.stringify({ obj: viewName })

       var OffsetCommonModel = {
                ProductId: $('#OffProductId').val(),
                CustomerId: $("#OffCustomerId").val(),

            }

       var OffsetCommonObj = JSON.stringify({ 'OffsetCommonObj': 
                                  OffsetCommonModel });

       $.ajax({
                contentType: "application/json; charset=utf-8",
                type: "Post",             
                url: "@Url.Content("~/Estimate/CreateOffset")",
                data: OffsetCommonObj + '&' + $.param(BookObj),
                dataType: 'json',

               success: function (data) {
               } 
    });

, это мой метод действия: -

public ActionResult CreateOffset(OffsetCommonModel OffsetCommonObj, CalculationModel obj)
        {
          // do something with objects
        }

, но когда я проверяю в консоли еговыдача ошибки "Недопустимый примитив JSON", где я делаю что-то не так, пожалуйста, помогите .. Спасибо

1 Ответ

0 голосов
/ 19 сентября 2018

Ваша часть данных в ajax должна выглядеть примерно так, и вам не нужно индивидуализировать объекты по отдельности, сделайте это один раз

 function SaveOffsetOrder() {

    var temp = sessionStorage.getItem('book');
    var viewName = $.parseJSON(temp);
    //  var BookObj = { obj: viewName }

    var OffsetCommonModel = {
        ProductId: $('#OffProductId').val(),
        CustomerId: $("#OffCustomerId").val(),

    }

    // var OffsetCommonObj = { 'OffsetCommonObj': OffsetCommonModel };

    $.ajax({
        contentType: "application/json; charset=utf-8",
        type: "Post",
        url: "@Url.Content("~/Estimate/CreateOffset")",
        data: JSON.stringify({ 'OffsetCommonObj': OffsetCommonModel, 'obj': viewName }),
        dataType: 'json',

        success: function (data) {
        }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...