【问题标题】:Error in getting action parameter in MVC controller from javascript从 javascript 获取 MVC 控制器中的操作参数时出错
【发布时间】:2012-08-17 04:47:44
【问题描述】:

我需要将值从 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);

    }

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

【问题讨论】:

  • 什么是服务器端技术?你试过$.post 吗?
  • itemsarray 长什么样子?
  • itemarray 是一个字符串。我需要从我的 li 标签中获取值并将其传递给控制器​​。

标签: javascript jquery asp.net-mvc model-view-controller


【解决方案1】:

鉴于此 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);
}

【讨论】:

  • 我明白了。我添加了类型:post,我的代码是 $.ajax({ url: '@Url.Action("PublishImage")', data: JSON.stringify({ imageids: itemsarray }), contentType: 'application/json', dataType: 'json', type:'POST', 成功: function (mydata) { alert(mydata); } });
猜你喜欢
  • 1970-01-01
  • 2011-02-12
  • 2014-02-21
  • 2017-08-05
  • 2017-12-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-14
  • 1970-01-01
相关资源
最近更新 更多