2016-11-17 104 views
0

我有一個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

回答

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; } 
    ... 
} 

然後,你接受的根類爲您的行動設置了一個param:

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

的ModelBinder的話,會從發佈的數據創建對象圖服務器端。

相關問題