0

私はJavaScriptコードを使用して、C#でコード化されたコントローラーアクションにデータを投稿しています。次のように作成された JavaScript で整数の配列を渡そうとすると、null 値が返されます。

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

Answers.tostring を試したときのように、値が配列に入っていることを JavaScript アラートから確認できます。期待どおりに値「1,2,3」を取得しています。

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

これは次のコントローラーアクションをターゲットにしていますが、リストが常にnullであるため、整数の配列がコントローラーアクションに引き継がれているようには見えません

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

postdata 配列を取得して null ではないリストに変換する方法を知っている人はいますか?

4

1 に答える 1

0

MVC は次のような QueryString パターンのデータを想定しているため:
answer=1&answers=2&answers=3

jQuery を使用して AJAX を実行する場合、デフォルトは
answer[]=1&answers[]=2&answers[]=3 です。

traditionalオプションを試すことができます

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

https://api.jquery.com/jQuery.ajax/を参照してください

于 2014-04-23T02:15:06.217 に答える