dcolumbus
dcolumbus

Reputation: 9722

ASP.NET MVC 2: Return Multiple Objects?

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;

What is the best way of returning more than one object?

Upvotes: 0

Views: 2029

Answers (2)

Vishal
Vishal

Reputation: 12369

Create a ViewModel look for best practices. Your case -

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

Function -

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;

}

Upvotes: 4

Brownman98
Brownman98

Reputation: 1065

Create a class that wraps both objects up into one. Then return your wrapper object.

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

Upvotes: 1

Related Questions