如何发送数组项从UI到MVC控制器

问题描述:

我有一个UI中的对象数组发送到MVC控制器。对象数组是这样的:如何发送数组项从UI到MVC控制器

`DoorId`,`DoorName` and an array of `Schedules`. `Schedules` array has `ScheduleId` and `ScheduleName`. 

enter image description here

现在如何将它发送到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].DoorIdDoors[index].ScheduleId以形成“DoorInfoEntity`对象。

怎么办?我试过object[] Doors,但它说Object does not contain a definition for DoorId or ScheduleId

您需要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; } 
    ... 
} 

然后,你接受的根类为您的行动设置了一个param:

public async Task<ActionResult> AddGroup(List<Door> doors) 

的ModelBinder的话,会从发布的数据创建对象图服务器端。