2015-06-10 2 views
0

Я понимаю, что этот вопрос был опубликован тысячу раз, но я пробовал каждое решение безрезультатно.Объект JSON передан контроллеру NULL

У меня есть этот JSON объект:

{ 
    "manufacture":"HP", 
    "model":"testModel", 
    "serialNumber":"testSerial", 
    "description":"Test Description", 
    "checkIn":true, 
    "stand":false, 
    "tilt":true, 
    "pivot":false, 
    "heightAdjust":true, 
    "size":27, 
    "portTypes":"2 VGA", 
    "resolution":"1080P" 
} 

я передать этот объект JSON к контроллеру, который просто

Function submitMonitor(monitor As Monitor) 
    Return False 
End Function 

Аякса вызова передать в контроллер выглядит следующим образом:

jQuery.ajaxSettings.traditional = true; 
$.ajax({ 
    url: '@Url.Action("submitMonitor", "Home")', 
    type: 'GET', 
    contentType: 'application/json', 
    //contentType: "application/json; charset=utf-8", 
    //dataType: 'json', 
    //processData: true, 
    data: JSON.stringify(data) 
}); 

Я пробовал пройти:

data:data 

Я пробовал без ajaxSettings.traditional линии. Я пробовал с включенными комментариями или выключенными, но до сих пор не повезло.

Это класс, к которому он должен перейти.

Public Class Monitor : Inherits HardwareData 
    Public stand As Boolean 
    Public tilt As Boolean 
    Public pivot As Boolean 
    Public heightAdjust As Boolean 
    Public size As Integer 
    Public portTypes As String 
    Public resolution As String 
End Class 

Вот класс, который наследует монитор:

Public Class HardwareData 
    Public key As Integer 
    Public manufacture As String 
    Public model As String 
    Public serialNumber As String 
    Public createdBy As String 
    Public createdTimeStamp As Date 
    Public description As String 
    Public checkIn As Boolean 
End Class 

Всякий раз, когда контроллер не вызывается, хотя, глядя на монитор переменной в отладчике, я вижу, что все значения установлены в настоящее время.

Любая идея, что может быть причиной этого?

+0

ли у пробовали настройки CONTENTTYPE: 'приложения/JSON', DATATYPE: 'JSON' ,? –

+0

Да, это тоже не сработало. Все еще передал все как ничего контроллеру, но, глядя на вызов на вкладке «Инфраструктура Chrome», все в нем есть как действительный JSON в вызове get. –

ответ

0

Основываясь на данных, которые вы показываете в JSON. Вам нужно установить monitor

$.ajax({ 
    url: '@Url.Action("submitMonitor", "Home")', 
    type: 'GET', 
    contentType: 'application/json', 
    data: {monitor:data} 
}); 
Смежные вопросы