JSON对象属性来了为NULL [英] JSON Object Properties are coming as NULL

查看:383
本文介绍了JSON对象属性来了为NULL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在ASP.Net MVC剑道UI电网。我试图 JSON 对象传递给控制器​​。虽然我在控制器中得到一个对象,属性都来为 NULL (名字,姓氏)。我们如何纠正?

请注意:对象不是null;但属性是空的对象

JSON

  VAR NewPerson =新的对象();
   NewPerson.FirstName =A;
   NewPerson.LastName =B;   VAR json1 = {myPerson:NewPerson};
   返回json1;

的JavaScript

  $(< D​​IV />中)。appendTo(e.detailCell).kendoGrid({
            数据源: {
                类型:aspnetmvc阿贾克斯
                运输: {                    数据类型:JSON
                    //,键入:POST
                    阅读:{
                        网址:首页/ GetItemsData
                        数据:功能()
                        {
                            VAR NewPerson =新的对象();
                            NewPerson.FirstName =A;
                            NewPerson.LastName =B;                            VAR json1 = {myPerson:NewPerson};
                            返回json1;
                        }
                    }                },
                模式:{
                    型号:{
                        字段:{
                            程序:{
                                ITEMID:数字,
                            },
                            ItemDescription:{类型:串}
                        }
                    },
                    总说:总,
                    数据:项目
                },
                serverPaging:真实,
                serverSorting:真实,
                serverFiltering:真实,
                每页:5
            },
            滚动:假的,
            排序:真实,
            分页:真实,
            列: [
                        {域:项ID,名称:项目标识,宽:70像素},
                        {场:ItemDescription,标题:项目说明宽110px}
            ]
        });

控制器

 公共JsonResult GetItemsData(人myPerson,[DataSourceRequest] DataSourceRequest要求)
    {
    }


解决方案

我解决了问题。对于其他人的利益,我将在这里把解决方案。

当我删除了NewPerson变量的问题得到了解决。现在我直接赋值给myPerson。和相应的网络流量如下。

  VAR myPerson = {};
 myPerson.FirstName =A;
 myPerson.LastName =B; 数据:功能()
 {    返回myPerson;
 }

更新

有关的getJSON方法,语法将如下图所示,在更好的JSON数据结构

  VAR searchCriteria = {};
sea​​rchCriteria.Accrual =A;
sea​​rchCriteria.Brand =B;$ .getJSON(URL,searchCriteria
,功能(数据){
    如果(data.length){
        警报(成功);
    }});


I have Kendo UI grid in ASP.Net MVC. I am trying to pass JSON object to controller. Though I am getting an object in the controller, the properties are coming as NULL (FirstName, LastName). How can we correct it?

Note: The object is not null; but the properties are null in the object

JSON

   var NewPerson = new Object();
   NewPerson.FirstName = "A";
   NewPerson.LastName = "B";

   var json1 = { myPerson: NewPerson };
   return json1;

JavaScript

     $("<div/>").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" }
            ]
        });

Controller

 public JsonResult GetItemsData(Person myPerson, [DataSourceRequest] DataSourceRequest request)
    {
    }

解决方案

I resolved the issue. For the benefit of others I will put the solution here.

The issue got resolved when I removed the NewPerson variable. Now I am directly assigning values to the myPerson. And the corresponding network traffic is listed below.

 var myPerson = {};
 myPerson.FirstName = "A";
 myPerson.LastName = "B";

 data: function () 
 {

    return myPerson;
 }

UPDATE

For getJSON Method, the syntax will be as shown below, as mentioned in Better JSON data structure

var searchCriteria = {};
searchCriteria.Accrual = "A";
searchCriteria.Brand = "B";

$.getJSON(url, searchCriteria
, function (data) {
    if (data.length) {
        alert('Success');
    }

});


这篇关于JSON对象属性来了为NULL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆