将嵌套数组对象发送到mvc控制器会产生空

时间:2017-05-22 19:17:49

标签: c# json ajax asp.net-mvc

我有以下内容:

selectedValues

的javascript数组结构
  

在[0]索引处包含数组[0] [1]

     

在[1]索引处包含数组   [0] [1]

依旧......

function OnSave()
{
var id =getvalue()
$.ajax({
type:"POST",
content:"application/json;charset=utf-8",
dataType:"JSON"
url:"....",
data: JSON.stringify({
id:id,
model:selectedvalues,
}),
success : function (data){
......
}
}

c#

中的ViewModel
public class ViewModel{
int id,
List<QuestionAnswer> QAs,

}

public QuestionAnswer
{
int Id;
string ans;

}

控制器方法:

public ActionResult Save( int id,List<ViewModel> model)

我能够在控制器方法中获取id,但是模型参数包含字段的null值。那么我做错了什么?

1 个答案:

答案 0 :(得分:0)

的Ajax

 var QAsObj= {
                ans:"answerVal",
                Id:1

            };


var SendObject = {
           id:1,
        QAs: QAsObj,   //QAsObj same name as in Modal

            }
 $.ajax({
                method: 'POST',
                url: '/Controllername/Save',
                contentType: 'application/json',  // send data type to server
                dataType: 'json',  //return type of data from server
                data:JSON.stringify(SendObject),
                //  asyn: false,
                success: function (data, status, xhr) {

                    // do stuff here

                },
                error: function (response, status, xhr) {

                    alert(response.statusText);

                }
            })

控制器

public ActionResult Save( SaveViewModel model)

查看模型

    public class SaveViewModel{
int id,
List<QuestionAnswer> QAs,

}

public QuestionAnswer
{
int Id;
string ans;

} 

我希望这样可以正常工作,但您仍然面临错误,请在下方发表评论