我应该实例化一个新模型吗?

时间:2015-06-19 22:39:22

标签: c# asp.net-mvc class

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函数时将其传递给控制器​​。我是否应该在控制器中创建一个新实例,或者像我一样继续?

2 个答案:

答案 0 :(得分:4)

选择第二个。

您的第一个代码段有一个冗余的new List<T>调用,用于分配新的列表,而下一行代码会使用repo中新创建的列表覆盖该引用。绝对没有必要。

答案 1 :(得分:1)

如果在您的控制器上,repository有责任提供ViewModel,并且您不会允许控制器向ViewModel添加新的PersonModel那么你一定要坚持第二个