JSON对象属性为NULL
我在ASP.Net MVC中有Kendo UI网格。 我试图将JSON
对象传递给控制器。 虽然我在控制器中获取了一个对象,但属性为NULL
(FirstName,LastName)。 我们怎样才能纠正它?
注意:该对象不为null; 但是对象中的属性为null
JSON
var NewPerson = new Object(); NewPerson.FirstName = "A"; NewPerson.LastName = "B"; var json1 = { myPerson: NewPerson }; return json1;
JavaScript的
$("").appendTo(e.detailCell).kendoGrid({ dataSource: { type: "aspnetmvc-ajax", transport: { dataType: "json", //,type: "POST" read: { url: "Home/GetItemsData", data: function () { var NewPerson = new Object(); NewPerson.FirstName = "A"; NewPerson.LastName = "B"; var json1 = { myPerson: NewPerson }; return json1; } } }, schema: { model: { fields: { Program: { ItemID: "number", }, ItemDescription: { type: "string" } } }, total: "Total", data: "Items" }, serverPaging: true, serverSorting: true, serverFiltering: true, pageSize: 5 }, scrollable: false, sortable: true, pageable: true, columns: [ { field: "ItemID", title: "Item Id", width: "70px" }, { field: "ItemDescription", title: "Item Description", width: "110px" } ] });
调节器
public JsonResult GetItemsData(Person myPerson, [DataSourceRequest] DataSourceRequest request) { }
如果我理解正确,您的代码与此类似:
var x = function (){ return "foo"; };
这里, x
不包含foo
,它包含函数引用。 您需要执行该函数才能获得其返回值:
var x = (function (){ return "foo"; })();
这里, x
确实包含foo
。
我解决了这个问题。 为了别人的利益,我会在这里提出解决方案。
当我删除NewPerson变量时,问题得到了解决。 现在我直接将值赋给myPerson。 下面列出了相应的网络流量。
var myPerson = {}; myPerson.FirstName = "A"; myPerson.LastName = "B"; data: function () { return myPerson; }
UPDATE
对于getJSON方法,语法将如下所示,如Better JSON数据结构中所述
var searchCriteria = {}; searchCriteria.Accrual = "A"; searchCriteria.Brand = "B"; $.getJSON(url, searchCriteria , function (data) { if (data.length) { alert('Success'); } });