gpt4 book ai didi

javascript - AngularJs 将带有子集合的对象发布到 MVC WebAPI

转载 作者:行者123 更新时间:2023-11-29 10:36:05 24 4
gpt4 key购买 nike

我正在开发 AngularJS 应用程序,服务 js 中的一种方法将数据发布到具有以下 C# 对象结构的 Web API

public class InvitationModel
{
public string Name { get; set; }
public string Email { get; set; }
public EventModel[] EventList { get; set; }
}

public class EventModel
{
public string EventName { get; set; }
public int TotalAdults { get; set; }
public int TotalChildren { get; set; }
public bool IsAccepted { get; set; }
}

问题是,当我将此数据发布到 WEBAPI 方法时,我的父级属性正确序列化,但保存集合的属性除外。它总是被设置为 null。

接收请求的 Web API 方法是:

[AllowAnonymous]
[Route("RSVP")]
[HttpPost]
public bool Submit(InvitationModel invitationModel)
{
return true;
}

因此,Name 和 Email 正确序列化,但 EventList 为 NULL

我确实检查了 javascript 端,我的 js 对象同时包含数组和其他原始属性。我猜问题出在 .NET WebAPI 端。

发布的请求负载是这样的:

{   "Name":"John Doe",
"EventList":{
"0":{ "TotalAdults":"1",
"TotalChildren":"2",
"EventName":"Event 1 Name"
},
"1":{ "TotalChildren":"2",
"TotalAdults":"2",
"EventName":"Event 2 Name"
},
"2":{ "TotalAdults":"1",
"TotalChildren":"1",
"EventName":"Event 3 Name"
}
}
}

最佳答案

您的 JSON 中的 EventList 是一个具有属性 “0”、“1” 等的对象

我猜应该是一个JSON数组,即

{
"Name":"John Doe",
"EventList": [
{"TotalAdults":"1","TotalChildren":"2","EventName":"Event 1 Name"},
{"TotalChildren":"2","TotalAdults":"2","EventName":"Event 2 Name"},
...
], ...

正确读入您的 C# 事件列表属性。

关于javascript - AngularJs 将带有子集合的对象发布到 MVC WebAPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36160184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com