将一个整数数组从JavaScript传递给List <int> </int>的控制器操作

时间:2014-04-23 00:21:40

标签: c# javascript arrays list postdata

我正在使用javascript代码将数据发布到用C#编码的控制器动作。尝试在javascript中传递一个整数数组时,我得到一个空值,如下所示:

var answers = [];
answers.push(1);
answers.push(2);
answers.push(3);

我可以从javascript警告中看到,当我尝试answer.tostring时,值将进入数组我按预期获得值“1,2,3”,然后我尝试以下postdata

var postData = {
                'surveyID': surveyID,
                'questionID': questionID,
                'answers': answers,
                'answerText': null,
                'comment': comment,
                'questionType': questionType
            };

这是针对以下控制器操作但是整数数组似乎没有传递到控制器操作,因为我的List始终为null

[HttpPost]
public PartialViewResult GoForward(int surveyID, int questionID, List<int> answers, string answerText, string comment, string questionType)
{}

我知道如何将postdata数组转换为非空的List吗?

1 个答案:

答案 0 :(得分:0)

因为MVC期望QueryString模式中的数据如下所示:
答案= 1&安培;答案= 2及答案= 3

如果你使用jQuery来做AJAX,默认是
答案[] = 1&安培;答案[] = 2及答案[] = 3

您可以尝试traditional选项

$.ajax({
  //...
  traditional:true,
  //...
});

参考https://api.jquery.com/jQuery.ajax/