如何发送数组项从UI到MVC控制器
问题描述:
我有一个UI中的对象数组发送到MVC控制器。对象数组是这样的:如何发送数组项从UI到MVC控制器
`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
。
答
您需要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的话,会从发布的数据创建对象图服务器端。