1

ビューからコントローラーに List を渡そうとしていますが、null 値を取得しています。コードは次のように記述されます。

モデル クラス :

public class testModel
{
    public int ID { get; set; }

    public string Name { get; set; }

    public List<myModel> ParameterList {get;set;}
}

controller にデータを送信する jquery および ajax コード:

var myModel = {
                  "Name":"test",      
                  "Description":"desc"      
                };

        var Object = {
            Name: $("#Name").val(),
            ParameterList : myModel
        };

        $.ajax({
            url: '/controller/action',
            type: 'POST',
            data: JSON.stringify(Object),
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            success: function (data) {   }
                else { }
            }
        });

Name プロパティの値を取得していますが、ParameterList の値は取得していません。ここで何が問題なのですか? 私は何か不足していますか?

私を助けてください。

ありがとう

編集:コメントからのコントローラーコード、

 public JsonResult Save(Object Obj) 
 {
 // logic for managing model and db save
 } 
4

3 に答える 3

3

あなたが言った、

Nameプロパティの値を取得していますが、ParameterListの値は取得していません。

myModelこれは、ParameterListをmyModelタイプのリストとして宣言しているので、の構造は何であるか疑問に思います。List<myModel> ParameterList

またJSON.stringify(Object)、コンソールにログインして、実際にコントローラーに投稿しているJson値を確認​​することをお勧めします。

これが私があなたが投稿しなければならないことを見つけたものです

{"Name":"yasser","ParameterList":{"Name":"test","Description":"desc"}} 

これらの記事も読んでください:

複雑なjsonオブジェクトビューをASP.netMVCのコントローラーに渡すにはどうすればよいですか?

JSONオブジェクトをJavascriptコードからMVCコントローラーに渡す

于 2012-11-07T05:10:53.960 に答える
1

これを試して:

var myModel = [{
              "Name":"test",      
              "Description":"desc"      
            }];

    var Object = {
        Name: $("#Name").val(),
        ParameterList : myModel
    };

    $.ajax({
        url: '/controller/action',
        type: 'POST',
        data: Object,
        dataType: 'json',
        traditional: true,
        contentType: 'application/json; charset=utf-8',
        success: function (data) {   }
            else { }
        }
    });
于 2012-11-07T06:31:22.710 に答える
0

このように試してみてください..これが役立つことを願っています!!

脚本:

var emp = [{ 'empid': 1, 'name': 'sasi' },{ 'empid': 2, 'name': 'sathish'}];
emp = JSON.stringify(emp)
$.post("/Home/getemplist/", { 'emp': emp })

コントローラ:

ここでは、パラメーターを文字列型に変更しました。JavaScriptSerializer を使用すると、この文字列データをクラス リスト オブジェクトに変換できます。以下のコードを見れば、よりよく理解できます。

public void getemplist(string emp) 
{
    List<Emp> personData;
    JavaScriptSerializer jss = new JavaScriptSerializer();
    personData = jss.Deserialize<List<Emp>>(emp);
    // DO YOUR OPERATION ON LIST OBJECT

}
于 2014-06-21T17:29:30.130 に答える