我正在.NET Core 7中使用Ajax开发post方法。我有3个级别的数据:
当我发送数据直到第 2 级“活动”时,一切似乎都工作正常。它在 post 方法中读取正确。
但是一旦我添加资产节点。检索时它开始显示 null。
我的Ajax请求如下:
我正在使用 [FormBody] 来读取数据,但不确定我缺少什么。预先感谢。
您可以添加代码来检查模型绑定/模型验证错误:
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
属性,如果它们不是字符串类型,则不要发送 ""