【问题标题】:Getting null array on ajax post在ajax帖子上获取空数组
【发布时间】:2017-06-12 11:18:02
【问题描述】:

我将一个数组(多维)作为参数传递给 ajax 调用,但在 url 上得到 null。

我尝试使用 JSON.stringify 而没有 stringify 但它总是返回 null。

TIA,我们该如何解决。

Ajax:-

 $.ajax({
                type: "POST",
                data: JSON.stringify({ filterData: myVal }),                 
                dataType: 'json',
                contentType: 'application/json',
                async: false,
                url: "/Home/AddFilters",
                success: function (msg) {                 
                }
            }); 

网址:-

public JsonResult AddFilters(string[] filterData)
{
}

数组(myVal):-

JSON.stringify 后的数组:-

【问题讨论】:

  • 为什么要投反对票??????

标签: javascript c# jquery asp.net-mvc


【解决方案1】:

为此创建模型类,例如:

public class FilterData 
{
    public string columnName { get; set; }
    public string firstFilterType { get; set; }
    public string secondFilterType { get; set; }
    public string secondFilterVal { get; set; }
    public string multiOperator { get; set; }
}

然后在你的动作中:

public JsonResult AddFilters(List<FilterData> filterData)

如果您的应用是 Asp.net MVC - 看起来是这样 - 它应该能够将这些值绑定到该列表参数中,这实际上是正确的方法。

【讨论】:

    【解决方案2】:

    虽然用户 DontVoteMeDown 上面建议的答案会起作用,但在您的情况下,只需从字符串中删除数组即可,如下所示:

    public JsonResult AddFilters(string filterData)
    {
    }
    

    【讨论】:

      【解决方案3】:

      如果您使用stringify,请删除contentType: 'application/json'。 在服务器端,您必须将字符串解析为 JSON。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-06
        相关资源
        最近更新 更多