通过ajax post将js文件中的json数据发送到.NET控制器时出现问题

问题描述 投票:0回答:1

所以,我试图通过 ajax post 从客户端(js)到服务器(.net 控制器)获取 json 字符串。由于某种我无法理解的原因,它到达了控制器,但列表是空的(计数 = 0)。

  • JS代码
    btnAddMovie.addEventListener("click", () => {
        console.log(datesDict);

        var dataToSend = formatDataToSend();
        console.log(dataToSend);
        console.log(JSON.stringify(dataToSend));


        $.ajax({
            type: "POST",
            url: "SubmitMovieAdd",
            data: JSON.stringify(dataToSend),
            contentType: "application/json",
            success: function (response) {
                console.log(response);
            },
            error: function (request, status, error) {
                console.log(request.responseText);
            }
        });
    });

    function formatDataToSend() {
        var jsonToSend = [];

        for (const [key, value] of Object.entries(datesDict)) {
            jsonToSend.push({
                date: key,
                hours: value
            });
        }

        return jsonToSend;
    }

在datesDict(字典)中有一些像这样的值: 日期字典 = 14/05/2024: ['15:00:00', '12:00:00']

在 dataToSend 中,它看起来像这样: dataToSend = 0: {日期: '14/05/2024', 小时: Array(2)}

最终 json.stringify => [{"date":"14/05/2024","hours":["15:00:00", "12:00:00"]}]

  • 控制器
    [HttpPost("MyAdminDashBoard/MovieAdd/SubmitMovieAdd")]
    public IActionResult SubmitMovieAdd(List<MovieAddJsonAppModel> json)
    {
        return Content(json.Count().ToString());
    }
  • 型号
    public class MovieAddJsonAppModel
    {
        public string Date { get; set; }
        public List<string> Hours { get; set; }
    }

你能帮我解决这个问题吗?谢谢:)

javascript c# .net ajax post
1个回答
0
投票

确保 C# 模型中的属性名称与 JSON 对象中的键完全匹配。在您的情况下,属性名称应为 DateHours

© www.soinside.com 2019 - 2024. All rights reserved.