MVC3 - десериализовать объект javascript для контроллера - PullRequest
1 голос
/ 26 июня 2011

У меня проблемы с передачей сериализованного объекта js в контроллер и возможностью связывания модели по умолчанию автоматически десериализовать его в мой объект.

Я могу вручную десериализовать значение в свой объект, все нормально.но я хотел бы знать, почему это не работает.

Спасибо

Вот мой фрагмент кода

js code

$.post('/Order/AddRecordAddHocStock2', { idPatient: $patientId, "orderItems": JSON.stringify($orderItems) }, function (data) {
                //$("#recordingdialog").html(data).dialog("open");

                var $dialog = $("#popup_dialog2");

                $dialog.empty();
                $dialog
                .dialog({
                    bgiframe: true,
                    title: $title,
                    height: 700,
                    width: 650,
                    modal: true,
                    autoOpen: false,
                    resizable: false
                });

                $dialog.html(data).dialog("open");

            });

Вот значение сообщения, полученное из firefox

idPatient   72
orderItems     [{"Id":0,"ProductName":"01870","Quantity":0,"StockOnHand":0,"MaxAllowance":12,"OrderTotal":0},{"Id":0,"ProductName":"01870","Quantity":0,"StockOnHand":0,"MaxAllowance":1,"OrderTotal":0}]

Вот мой контроллер, который я ожидал, что orderItems должен автоматически заполнить значение из предыдущего объекта js

        [HttpPost]
    public virtual ActionResult AddRecordAddHocStock2(long idPatient, List<OrderItemModel> orderItems)
    {
       var items = Request.Form["orderItems"];
       //it's working if I manually deserialize the js object
       var data = new   JavaScriptSerializer().Deserialize(items,typeof(List<OrderItemModel>));
    }

1 Ответ

4 голосов
/ 26 июня 2011

Вам необходимо установить тип контента "application / json".Смотрите этот блог для более подробной информации.Сосредоточьтесь на примере кода jQuery, а не на серверных изменениях, которые не нужны в ASP.NET MVC 3: http://haacked.com/archive/2010/04/15/sending-json-to-an-asp-net-mvc-action-method-argument.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...