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.NET MVC,您可以查看以下博客文章,该文章说明了如何集成自定义 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 回答