asp.net MVC c#,模型List <t>绑定和保存数据

时间:2016-05-10 12:40:52

标签: c# asp.net-mvc

我有一个处理ViewModel的视图,如下所示,

public class MyVM {
    public Exercise exer{ get; set; }
    public List<Category> categories { get; set; }
    public List<ExerciseInput> inputs { get; set; }
}

视图根据数据库中的类别数有多个练习。使用for循环我为每个类别创建初始练习,用户也可以向每个类别添加一个问题(如链接在其中的配置文件页面中,您可以为配置文件添加经验),我的问题是保存所有这些数据。或更新现有数据。我使用了编辑器模板,但仍然可以弄清楚如何为同一类型的每个类别(ExceriseInput)处理多个数据。 提前致谢。

控制器代码,

public ActionResult viewExcerciseDetails(int Id)
        {
            var vm = new MyVM();

            vm.exer= db.Exercise .SingleOrDefault(m => m.exerId == Id);
            vm.categories = db.Categories.OrderBy(m => m.orderNum).ToList();
            vm.inputs = db.ExerciseInput.Where(m => m.exerId == Id).ToList();

            return View(vm);
        }

视图中for循环的一段代码

@for (var i = 0; i < data.Count(); i++)
{
    @Html.EditorFor(m => data[i])
}

1 个答案:

答案 0 :(得分:0)

试试这样 1.将您的ViewModel更改为以下代码

public class MyVM {
    public Exercise exer{ get; set; }
    public ICollection<Category> categories { get; set; }
    public ICollection<ExerciseInput> inputs { get; set; }
}
  1. 然后在控制器中添加数据,就像你的代码一样。
  2. 然后在视图中,按编辑器模板填充categoriesinputs
  3. 编辑器模板文件应该是受尊重的型号名称,例如CategoryExerciseInput
    希望这会有所帮助