【问题标题】:Null ids of array from ajax to actionresult in asp.net mvc在 asp.net mvc 中从 ajax 到 actionresult 的数组的空 id
【发布时间】:2013-05-30 01:05:00
【问题描述】:

我的 Ajax 函数:

function changeMultipleItemStatus(status) {
    var ids= getAllCheckedIds();
    var comment = $('#txtComment').val();
    $.ajax({
        type: 'POST',
        url: "../Admin/ChangeMultipleItemStatus",
        cache: false,
        data: {
            ids: ids,
            status: status,
            comment: comment
        },
        traditional: true,
        success: function (html) {
            ...
        }
    }); }

动作结果

[HttpPost]
public ActionResult ChangeMultipleItemStatus(int[] ids, string status, string comment)
{
  ....
}

function getAllCheckedIds() {
    var data = [];

    $("table input:checked").each(function () {
        data.push($(this).val());
    });

    return data;
}

我的问题是 ActionResult Changemultiplestatus 第一个变量 ids 始终为空。 当我提醒 dataToSend 它提醒它似乎还不错(true,1,2)-> 1,2 是项目的 id。 但在控制器中,action ids 始终为 null。

任何cmets?

【问题讨论】:

  • “当我提醒 dataToSend 时它提醒它似乎没问题 (true,1,2) -> 1,2 是项目的 id”true 来自哪里?因为它不是int,所以这可能是个问题...
  • 我认为我们需要查看getAllCheckedIds 来源的几率也很高。
  • 其实我不知道为什么它一开始总是包含一个真值。项目列在 Telerik 网格中。

标签: jquery asp.net-mvc-2 telerik-grid


【解决方案1】:

你能在 webservice 中将int[] ids 更改为字符串 ids。它仍然是空的吗?也可以试试[ [System.Web.Services.WebMethod]] 而不是[HttpPost]

【讨论】:

    【解决方案2】:

    我绝对不会将整数更改为字符串。 Phil Haack 有一篇很棒的关于模型绑定到列表的文章 - 尝试这样做时会涉及一些技巧,所以我建议阅读他的文章: http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多