2011-01-22 69 views

回答

0

假设你的视图模型是这样的:

public class ViewModel 
{ 
    IEnumerable<Money> lst { get; set; } 
    // other properties 
} 

只是这样做:

public ActionResult GetMonies() 
{ 
    var monies = context.Money 
         .Take(10) 
         .ToList(); 

    var model = new ViewModel { lst = monies }; 

    return View(model); 
} 
2

IEnumerable具有ToList()函数返回所述类型的列表。

vm.lst = context.Money.Take(10).ToList(); // returns a List<Money> 
1

我会建议你防止改变ViewModel.lst的可能性,即善堂的类型应该是IEnumerable而不是List/IList(当然,如果你的代码不需要List功能)。此外,我想你不要修改lst引用,所以你可以通过构造函数移除setter并初始化lst。

public class ViewModel 
    { 
     public ViewModel(IEnumerable<Money> lst) 
     { 
      this._lst = lst; 
     } 

     private readonly IEnumerable<Money> _lst; 
     IEnumerable<Money> Lst 
     { 
      get 
      { 
       return this._lst; 
      } 
     } 
     // other properties 
    } 

    public ActionResult GetMonies() 
    { 
     var model = new ViewModel(context.Money.Take(10).ToArray()); 
     return View(model); 
    } 

此方法保证您的代码的消费者不会意外修改您的ViewModel.Lst。

相关问题