2010-12-03 75 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; } 
}