2016-11-17 12 views
0

MVCコントローラに送信されるUIのオブジェクトの配列があります。 MVCコントローラに送信する方法を今すぐUIからMVCコントローラへの配列アイテムの送信方法

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

enter image description here

:オブジェクトの配列は次のようになり?だから、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; 

そして「DoorInfoEntity`オブジェクトを形成するために、Doors[index].DoorIdDoors[index].ScheduleIdとしてそれを解析します。

どうすればよいですか?

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、その後、投稿データからオブジェクトグラフのサーバー側を作成します。

関連する問題