0

我需要将值从 javascript 传递到我的控制器操作。

 $.getJSON('/gallery/PublishImage', { imageid: itemsarray }, function (mydata) {

    });

在 javascript 中,它有一个值。在控制器上,它为空

 public ActionResult PublishImage(string imageid)
    {
        var mydata = imageid;
        return Json(mydata,JsonRequestBehavior.AllowGet);

    }

如何解决这个问题。

我的整个代码是:

function publish() {
    debugger;

    var $trash = $("#trash li");
    var itemsarray = [];


    var lis = document.getElementById("trash").getElementsByTagName("li");
    for (var i = 0; i < lis.length; i++) {
        var item = lis[i].children[0].id;
        itemsarray.push(item);
    }


    $.getJSON('@Url.Action("PublishImage")', { imageids: itemsarray }, function (mydata) {


    });

在控制器中

public ActionResult PublishImage(string[] imageids)
    {
        var mydata = imageids;
        return Json(mydata,JsonRequestBehavior.AllowGet);

    }

对于 testig 使用的字符串。但在上面的代码中也返回 null。有什么遗漏的吗?

4

1 回答 1

0

鉴于这个 javascript 变量的名称,我强烈怀疑它itemsarray不是字符串,而是某种 javascript 对象(数组?)。它必须是字符串才能工作:

var itemsarray = 'foo bar';
$.getJSON('/gallery/PublishImage', { imageid: itemsarray }, function (mydata) {

});

如果你想发送一个数组,那么你可以这样做:

var itemsarray = ['foo', 'bar', 'baz'];
$.getJSON('/gallery/PublishImage', { imageids: itemsarray }, function (mydata) {

});

和你的控制器动作:

public ActionResult PublishImage(string[] imageids)
{
    var mydata = imageids;
    return Json(mydata, JsonRequestBehavior.AllowGet);
}
于 2012-08-17T05:02:41.027 回答