1
var sc = new Array();
var i =0;
el.find(".colorable").each(function () {
    sc[i++] = $(this).attr("src");
});
$.post("/Edit/ChangeImageColor", { src : sc , s: source, t: target }, function () {
    alert("done");
});

配列をサーバーに渡そうとし( sc )ていますが、srcにnullが表示されます

    public JsonResult ChangeImageColor(string[] src, string s, string t)
    {

誰かが私が欠けているものを教えてもらえますか?

4

3 に答える 3

3

ASP.NET MVC 3を使用している場合は、JSONリクエストとして送信できます。

var sc = new Array();
var i = 0;
el.find(".colorable").each(function () {
    sc[i++] = $(this).attr("src");
});
$.ajax({
    url: '/Edit/ChangeImageColor',
    type: 'POST',
    contentType: 'application/json',
    data: JSON.stringify({ src: sc, s: source, t: target }),
    success: function() {
        alert("done");
    }
});

古いバージョンのASP.NETMVCを使用している場合は、次のブログ投稿を参照してください。このブログ投稿では、カスタムjsonプロバイダーファクトリを統合して、JSONリクエストをコントローラーアクションに送信する方法を示しています。

于 2012-05-09T09:16:02.273 に答える
0

次のようにアクションメソッドを変更してみてください

 public JsonResult ChangeImageColor(IEnumerable<string> src, string s, string t)
{
于 2012-05-09T10:00:09.103 に答える
0

(おそらくサーバー側の)パラメーターの受け渡しに失敗したにもかかわらず、これは便利だと思いました。

var sc = el.find(".colorable").map(function() {
    return this.src;
}).get();

これは、配列内の要素のセットのプロパティを収集するためのはるかに簡単な方法です。

于 2012-05-09T09:09:24.053 に答える