我在UI中有一组对象被发送到MVC Controller。对象数组如下所示:
`DoorId`,`DoorName` and an array of `Schedules`. `Schedules` array has `ScheduleId` and `ScheduleName`.
现在如何将其发送到MVC控制器?那么,每个DoorId
及其关联的ScheduleId
是否可以单独提取以形成另一个对象?
目前,我正在分别发送DoorId
数组和ScheduleId
数组,
但我不想这样做。我想发送整个数组。
public async Task<ActionResult> AddGroup(string[] DoorIds, string[] scheduleEntity)//AccessGroupEntity entity, string accountId
{
GroupEntity groupEntity = new GroupEntity();
var doorScheduleList = new List<DoorInfoEntity>();
for(int i=0;i< DoorIds.Length;i++)
{
doorScheduleList.Add(new DoorInfoEntity()
{
DoorId = DoorIds[i],
ScheduleId = scheduleEntity[i]
});
}
accessGroupEntity.DoorItems = doorScheduleList;
然后将其解析为Doors[index].DoorId
和Doors[index].ScheduleId
以形成'DoorInfoEntity`对象。
怎么做?
我尝试object[] Doors
,但它说Object does not contain a definition for DoorId or ScheduleId
。
答案 0 :(得分:1)
你需要在C#中使用一个对象图,模型绑定器可以绑定发布的数据,模拟你在JavaScript中拥有的对象图。例如:
public class Door
{
public Guid DoorId { get; set; }
public string DoorName { get; set; }
public List<Schedule> Schedules { get; set; }
...
}
public class Schedule
{
public Guid ScheduleId { get; set; }
...
}
然后,您在行动中接受根类作为参数:
public async Task<ActionResult> AddGroup(List<Door> doors)
然后,模型绑定器将从发布的数据中创建服务器端的对象图。