MVC。我将数据传递给模型中的视图。在我的存储库中,我将linq结果映射到模型。在控制器中我发送数据。我该做什么:
form = page.forms.find{|f| f.form_node == page.at('[name=f]')}
或者
List<PersonModel> people = new List<PersonModel>();
people = repo.GetPersonList();
return View(people);
正如我所提到的,在repo中,我使用新的模型实例将结果映射到模型:
List<PersonModel> people = repo.GetPersonList();
return View(people);
任何一个都有效。我使用第二个,因为根据我的想法,repo正在创建一个新模型,然后在调用repo.GetPersonList函数时将其传递给控制器。我是否应该在控制器中创建一个新实例,或者像我一样继续?
答案 0 :(得分:4)
选择第二个。
您的第一个代码段有一个冗余的new List<T>
调用,用于分配新的列表,而下一行代码会使用repo
中新创建的列表覆盖该引用。绝对没有必要。
答案 1 :(得分:1)
如果在您的控制器上,repository
有责任提供ViewModel,并且您不会允许控制器向ViewModel添加新的PersonModel
那么你一定要坚持第二个。