2013-06-26 49 views
0

我有动态生成的锻炼列表和excercises.Excercises通用的所有锻炼。 我需要为每次锻炼传递多个练习。 我需要传递这样的数据。对于workout1,可能有3个练习。对于练习2,可能会有2个练习等等。通过多个下拉列表,每个下拉列表中选择多个值给控制器MVC4

的看法是:

@using (Html.BeginForm("AddWorkoutSessionExcercises", "Trainer", FormMethod.Post)) 
{ 
    foreach (var workoutType in Model.WorkoutTypes) 
    { 
    <div><span>@workoutType.WorkoutTypeName</span><span class="MandatoryStar">*</span>   </div> 

    <div > 
     @Html.DropDownList("ExcerciseDDFor", Model.Excercises, null, new { multiple = "multiple"}) 
    </div> 
} 

我的模型是一样的锻炼和excercises的this.Returning名单。

public class AddSessionExcerciseModel 
{ 

    public AddSessionExcerciseModel() 
    { 
     Excercises = Utility.GetAllExcercises(); 
     WorkoutTypes = Utility.GetWorkoutTypes(); 
    } 
    public List<SelectListItem> Excercises { get; set; } 
    public List<tblWorkoutType> WorkoutTypes { get; set; } 
} 

我的控制器是:

public ActionResult AddWorkoutSessionExcercises(Guid[] ExcerciseDDFor) 
{ 
// code 
} 

这是通过对所有的训练所有excercises的阵列,并且我无法以区分哪个锻炼本练习所属。

有什么办法来解决这个problem.Or什么办法,我会得到Excercises阵列的所有workouts.Like:

workout1 - >数组[2个excercises]

workout2 - >阵列[3个excercises]

workout3 - >阵列[1个excercises]

。 。

谢谢。 。

回答

0

我认为你需要改变你的模型。现在,你有一个锻炼列表,但只有一个练习列表,所以没有办法告诉哪个锻炼属于哪个锻炼。

恕我直言,tblWorkoutType应该每个都包含一个练习列表。

而在你的行动,你应该期望锻炼的列表中选择练习,每一个具有列表

public ActionResult AddWorkoutSessionExcercises(List<tblWorkoutType> workouts) 
{ 
// code 
}