1

$.post()整数値の配列をコントローラーに投稿するために使用しています。

配列を作成する方法は次のとおりです。

var ratings = [];
$('#ratings input[name=newReviewRatings]').each(function () {
    ratings.push($(this).val());
});

コントローラーに投稿する方法は次のとおりです。

$.post('@Url.Action("CreateReview", "Provider")',
{
    id: providerId,
    ratings: ratings,
    comment: comment
});

投稿されるフォーム データは次のとおりです。

{id=437baf29-4196-4966-88de-a8fde87ef68d&ratings%5b%5d=1&ratings%5b%5d=2&ratings%5b%5d=3&ratings%5b%5d=4&ratings%5b%5d=5&comment=コメント}

そして、これが私のコントローラーの署名です:

public ActionResult CreateReview(Guid id, int[] ratings, string comment)
{
    // ....
}

それは正しいように思えますが、ratings常に null です。誰かが私が見逃しているものを見ることができますか?

私も試しstring[] ratingsてみましたが、同じ結果が得られました。を使用して配列を渡すという提案も見ましたが、JSON.stringify(ratings)それも役に立たなかったようです。

4

2 に答える 2