0

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

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

我可以从 javascript 警报中看到值正在进入数组,因为当我尝试 answers.tostring 时,我得到了预期的值“1,2,3”,然后我正在尝试以下 postdata

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

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

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

知道如何让 postdata 数组转换为不为空的 List 吗?

4

1 回答 1

0

因为 MVC 期望 QueryString 模式中的数据是这样的:
answers=1&answers=2&answers=3

如果你使用jQuery做AJAX,默认是
answers[]=1&answers[]=2&answers[]=3

你可以试试traditional选项

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

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

于 2014-04-23T02:15:06.217 回答