【问题标题】:how to pass a string array into actionresult如何将字符串数组传递给 actionresult
【发布时间】:2017-05-01 18:35:30
【问题描述】:

我有一个变量是 string[] 参数。我试图在 actionresult 中推送值,但尚未匹配 string[] 参数。所以我的ajax:

    var panels = [];
    $('input.checkone').each(function (e) {
        if ($(this).is(':checked')) {
            var inputCheck = $(this).closest('tr').find('td:nth-child(6) a').text();
            panels.push(inputCheck);
        }
    });
    var data = { panels: panels };
    $.ajax({
      url: "/main/sub",
      data: data,
    }).etc...

所以面板看起来像面板:Array[1] 0:'test', 它转到我的控制器:

public ActionResult sub(string[] panels)
{
 //content 
}

目前,面板正在像 {string[1]} 一样通过。我不确定为什么我的字符串没有被正确传递并且它像 {string[1]} 一样传递。

【问题讨论】:

  • innerHTML代替text怎么样?
  • 它似乎在 jQuery 中传递正常,它获取文本,但是当我将它传递给我的控制器时,它被替换为 {string[1]}
  • 好吧var data = { 'panels': panels };
  • 是的,做了同样的事情
  • 您是否尝试添加contentType: "application/json"

标签: c# jquery ajax


【解决方案1】:

此代码适用于我:

        var url = 'http://my-address/';
        var array = ["hello", "world"];
        $.post(url, $.param({ data: array }, true), function (result) {
            $('#MyDiv').html(result);                
        }); 



public ActionResult sub(List<string> data)
{
 //content 
}

【讨论】:

    【解决方案2】:

    您需要告诉 jQuery 以传统方式序列化您的参数,这在 jQuery 3.0 之后不再是默认方式。

    $.ajax({
        url: "/main/sub",
        data: data,
        traditional: true
    })
    

    【讨论】:

      猜你喜欢
      • 2016-10-25
      • 2020-05-31
      • 1970-01-01
      • 2019-04-07
      • 1970-01-01
      • 1970-01-01
      • 2017-04-05
      • 2016-12-08
      相关资源
      最近更新 更多