2010-12-03 5 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 함수가있는 저장소입니다. 그 기능의 고기는 위에 게시 한 것입니다. 그렇다면 거래 및 필터를 가져오고 설정하는 DealViewModel이 있습니다. – dcolumbus

+0

GetDeals의 형식을 변경하여 ViewModel을 반환하거나 별도의 함수로 정보를 가져 와서 각 필터 및 거래의 목록을 반환 한 다음 ViewModel 개체에 할당합니다. – Vishal

+0

나중에 시도 할 것입니다. – dcolumbus

1

이 랩 모두 하나에 최대 객체 클래스를 만듭니다. 그런 다음 랩퍼 오브젝트를 리턴하십시오.

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

이 래퍼는 어디로 가야합니까? – dcolumbus

+0

@dcolumbus in ViewModel –

+0

그래,하지만 ViewModel 있어요 ... 문제는 ViewModel 두 필터 및 거래를 반환합니다. – dcolumbus