过滤视图的ICollection的最佳做法?

时间:2013-10-01 08:57:24

标签: asp.net-mvc-4

我有一个View,其Model包含ICollection,其中包含一组文件名。

我在View上有几个区域,我想列出这些文件名。但是,根据View的区域,我只希望列出某些类型的文件。

过滤ICollection的最佳做法是什么?我应该在Controller上将其过滤到View之前对其进行过滤,还是可以在View上过滤它?

1 个答案:

答案 0 :(得分:1)

我认为最佳做法是在模型中查看包含每个区域的列表

class ViewModel
{
   ICollection<string> ForArea1ExampleNames{get;set;}
   ICollection<string> ForArea2ExampleNames{get;set;}

   public ViewModel(ICollection<string> forArea1ExampleNames,ICollection<string> forArea2ExampleNames)
   {
      ForArea1ExampleNames = forArea1ExampleNames;
      ForArea2ExampleNames = forArea2ExampleNames;
   }

}

在控制器中

var forArea1ExampleNames = SomeService.GetForArea1ExampleNames()//This is 
var forArea2ExampleNames = SomeService.GetForArea2ExampleNames()// business logic
var model = new ViewModel(forArea1ExampleNames,forArea2ExampleNames);

过滤文件名是一种商业逻辑。所以它应该分开