2010-12-03 51 views
0
List<Filter> filters; 
List<Deal> deals; 
using (DealDataContext db = new DealDataContext()) 
{ 
    XElement xmlTree = XElement.Parse("<Request><ZipCode>92618</ZipCode></Request>"); 
    var result = db.SearchDeals(xmlTree); 

    filters = result.GetResult<Filter>().ToList(); 
    deals = result.GetResult<Deal>().ToList(); 

} 

return filters, deals; 

返回多个对象的最佳方法是什么?ASP.NET MVC 2:返回多个对象?

回答

4

创建一个ViewModel寻找best practices。你的情况 -

public class DealViewModel 
{ 
List<Filter> filters{get; set;} 
List<Deal> deals{get; set;} 
} 

功能 -

DealViewModel vm= new DeakViewModel(); 

using (DealDataContext db = new DealDataContext()) 
{ 
    XElement xmlTree = XElement.Parse("<Request><ZipCode>92618</ZipCode></Request>"); 
    var result = db.SearchDeals(xmlTree); 

    vm.filters = result.GetResult<Filter>().ToList(); 
    vm.deals = result.GetResult<Deal>().ToList(); 
    return vm; 

} 
+0

有趣。我正在进行的是一个具有GetDeals函数的Repository;这个功能的肉是我上面发布的。那么我有一个DealViewModel,它代表Deal和Filter的获取和设置。 – dcolumbus 2010-12-03 18:58:23

+0

那么更改GetDeals的类型以返回ViewModel,或者通过单独的函数获取信息返回每个过滤器和交易的列表,然后将它们分配给您的ViewModel对象。 – Vishal 2010-12-03 19:02:51

1

创建一个包装对象都成一个类。然后返回你的包装器对象。

public class Wrapper 
{ 
    List<Filter> Filters { get; set; } 
    List<Deal> Deals { get; set; } 
}