Ajax、C# 在发布第三级嵌套节点时读取数据为空

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

我正在.NET Core 7中使用Ajax开发post方法。我有3个级别的数据:

当我发送数据直到第 2 级“活动”时,一切似乎都工作正常。它在 post 方法中读取正确。

但是一旦我添加资产节点。检索时它开始显示 null。

我的Ajax请求如下:

我正在使用 [FormBody] 来读取数据,但不确定我缺少什么。预先感谢。

jquery .net ajax asp.net-core .net-core
1个回答
0
投票

您可以添加代码来检查模型绑定/模型验证错误:

if(!ModelState.IsValid)
        {
            var errors = ModelState.Where(x => x.Value?.Errors.Count > 0).Select(x => new {Key=x.Key,Errors=x.Value?.Errors}).ToList();
        }

例如,我尝试如下:

型号:

public class QuickSaveFormViewModel
{
    public List<Brand>? Brands { get; set; }
}
public class Brand
{
    public  string? Name { get; set; }
    public string? Currency { get; set; }

    public List<Campaign>? Campaigns { get; set; }
}

public class Campaign
{
    public string? Name { get; set; }
    public string? Budget { get; set; }
    public DateTime? StartDate { get; set; }
    public DateTime? EndDate { get; set; }

    public List<Asset>? Assets { get; set; }
}

public class Asset
{
    public string? Name { get; set; }
    public int?  BrandId { get; set; }
    public int? ChannelId { get; set; }
    public int? FormatId { get; set; }
    public int? TypeId { get; set; }

    public string? FileBase64 { get; set; }
}

与邮递员尝试过:

{
    "brands":[{
        "Name":"Brand05",
        "Currency":"$",
        "campaigns":[{
            "Name":"Campaign1",
            "Budget":"23000",
            "StartDate":"2023-08-06",
            "EndDate":"2023-09-06",
            "ASSETS":[{
                "NAME":"ASSET 1",
                "BRANDID":"1",
                "CHANNELID":"1",
                "FormatId":"",
                "TypeId":"2",
                "FileBase64":""
            }]
        }]
    }]
}

错误:

修复并用

""
替换
null

注意 C# 代码中的

xxId
属性,如果它们不是字符串类型,则不要发送
""

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