0

ASP.Net MVC に剣道 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

     $("<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)
    {
    }
4

2 に答える 2

1

私の理解が正しければ、コードは次のようになります。

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

ここでは、 をx含まずfoo、関数参照を含みます。戻り値を取得するには、関数を実行する必要があります。

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

ここでは、xが含まれていますfoo

于 2013-08-08T11:36:56.857 に答える
1

問題を解決しました。他の人の利益のために、ここに解決策を示します。

NewPerson 変数を削除すると、問題は解決しました。今、値を myPerson に直接割り当てています。また、対応するネットワーク トラフィックを以下に示します。

ここに画像の説明を入力

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

 data: function () 
 {

    return myPerson;
 }

アップデート

getJSON メソッドの場合、より良い JSON データ構造で説明されているように、構文は次のようになります。

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

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

});

于 2013-08-09T04:37:00.137 に答える