无法使用带有asp.net核心的Ajax发送数组

哈米德·埃布尔

我已经写了这个ajax函数:

$(function () {
        $("#showReport").click(function () {
            var data = [];
            for (var i = 0; i <@Model.LiFilters.Count;i++) {
                data[i] = $("#filter" + i).val();
                $("#myDiv").html("Hello!");
            }

            alert('{filters:' + JSON.stringify(data) + '}');
            $("#myDiv").remove();
            $.ajax({
                type: "POST",
                url: '@Url.Action("ShowReport", "Report")',
                traditional: true,
                //data: '{filters:' + JSON.stringify(data) + '}',
                data: { filters : data },
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    alert(data);
                    alert(response[0]);
                    $("#myDiv").html(response[0]);
                    alert(response);
                },
                failure: function (response) {
                    alert(response.responseText);
                },
                error: function (response) {
                    alert(response.responseText);
                }
            });
            return false;
        });
    });

并在报表控制器中执行以下操作:

 [HttpPost]
public JsonResult ShowReport(string[] filters)
{
    C_AminReport aminReport = null;
    string sErr = string.Empty;
    //C_ReportParams aminParams = null;
    //C_AminReport aminReport;
    string sReport = "Empty Report!";
    if (C_AminReport.U_GetReport(aminReport.ID, out aminReport))
    {
        int iConIndex = Get_ServiceIndex();
        aminReport.U_RenderReport(iConIndex, ref sErr);
        aminReport.U_GetReportFromAmin(iConIndex, aminReport, out sReport, ref sErr);
    }
    string[] asReport;
    JsonBuilder.U_TryReadJson(sReport, out asReport);
    return Json(asReport);
}

但是,当运行代码时,我看到数据数组已填充但在ShowReport操作内部,则fillters数组为空数组,未填充!我也尝试在动作参数中使用[FromBody]标签,但它不起作用!问题是什么?

加布里埃尔·卢西(Gabriel Luci)

我测试了您的JavaScript,并尝试发送查询字符串中的所有数据。

您必须使用JSON.stringify其中之一应该起作用:

data: '{filters:' + JSON.stringify(data) + '}'

要么

data: JSON.stringify(data)

我怀疑这是第二个可行的方法。

您可能仍然需要[FromBody]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法使用带有 ASP.NET Core 和 Entity Framework Core 的 ajax 发送数组数据

通过AJAX发送对象数组-ASP.NET MVC

使用 Ajax 将按钮值发送到 .net 核心中的控制器

我无法在asp.net核心温泉中添加带有角度cli的新组件

如何通过ajax将对象数组传递给asp.net核心控制器

如何使用带有Asp.net 5(dotnet核心)的Serilog登录到SQL Server

如何在Asp.Net核心应用程序中使用带有Kestrel的域URL?

SqlDataSource上的存储过程无法在带有单引号C#的SelectCommand中使用单引号C#asp.net

Django:使用 AJAX 发送数组

带有 AJAX 的 ASP.NET MVC 无法按预期工作

带有 linux docker 容器的 Asp.net 核心

无法使用带有Java的AutoItX发送密钥

无法使用 axios 发送带有标头的获取请求

无法使用 nodemailer 发送带有附件的电子邮件

无法使用 Kaleido 发送带有元掩码的 ETH

如何在ajax post请求asp.net core mvc razor中发送对象数组

C#asp.net核心中的表单发送列表

带有ASP.net的引导程序未使用全屏

无法使用ascii表显示带有数组的棋盘

使用带有端点路由的ASP.NET Core中的CreatedAtRouteResult生成带有段的URL

带有FakeItEasy的.NET核心

在 ASP.NET 中使用带有 Ajax.BeginForm 的 Javascript Bootbox

使用AJAX和ASP.NET上传带有文本的文件

如何在 asp.net 核心 WebApi 项目中使用带有 swagger 的 OData 过滤器?

在带有实体框架核心的ASP.NET Core WebAPI中使用“数据库生成的”处理属性

$ .fileDownload库无法正确发送带有“ POST”的数组

无法在.net核心Azure Web Job中使用带有功能内部DI和ServiceBusTrigger参数的服务实现

将带有JSON数据的GET请求从Axios发送到Asp.net核心ActionResult,而不会获取(415不支持的媒体类型)

使用Owin Self-Host ASP.Net API2无法接收带有正文中的数据而不是查询字符串的POST请求