【问题标题】:JSON Object Properties are coming as NULLJSON 对象属性以 NULL 形式出现
【发布时间】:2013-08-10 01:41:13
【问题描述】:

我在 ASP.Net MVC 中有 Kendo UI 网格。我正在尝试将 JSON 对象传递给控制器​​。虽然我在控制器中获取了一个对象,但属性以NULL(名字,姓氏)的形式出现。我们如何纠正它?

注意:对象不为空;但对象中的属性为空

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" }
            ]
        });

控制器

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

【问题讨论】:

  • 在 Firebug 中如何查询服务器?
  • @NikolayFominyh 我已经解决了,网络流量发布在下面的答案中

标签: jquery asp.net asp.net-mvc json


【解决方案1】:

如果我理解正确,您的代码类似于:

var x = function (){
  return "foo";
};

这里,x 不包含foo,它包含函数引用。您需要执行该函数以获取其返回值:

var x = (function (){
  return "foo";
})();

这里,x 确实包含foo

【讨论】:

    【解决方案2】:

    我解决了这个问题。为了其他人的利益,我将解决方案放在这里。

    当我删除 NewPerson 变量后问题得到解决。现在我直接将值分配给 myPerson。下面列出了相应的网络流量。

     var myPerson = {};
     myPerson.FirstName = "A";
     myPerson.LastName = "B";
    
     data: function () 
     {
    
        return myPerson;
     }
    

    更新

    对于getJSON方法,语法如下,Better JSON data structure中提到

    var searchCriteria = {};
    searchCriteria.Accrual = "A";
    searchCriteria.Brand = "B";
    
    $.getJSON(url, searchCriteria
    , function (data) {
        if (data.length) {
            alert('Success');
        }
    
    });
    

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 2012-11-16
    • 2021-03-12
    • 1970-01-01
    • 2019-03-30
    相关资源
    最近更新 更多