0

In my Controller, I've added code to execute and retrieve for two stored procedures:

public ActionResult Index()
    {
        ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";

        var megaMean = _db.GetMegaMillionsMean();
        var powerMean = _db.GetPowerballMean();
        //object mega = null;
        List<mega> viewMega = megaMean.Select(p => new mega {ball1 = p.Ball_1_Average, ball2 = p.Ball_2_Average, ball3 = p.Ball_3_Average, ball4 = p.Ball_4_Average, ball5 = p.Ball_5_Average, megaball = p.MegaBall_Average}).ToList();
        List<power> viewPower = powerMean.Select(p => new power { ball1 = p.Ball_1_Average, ball2 = p.Ball_2_Average, ball3 = p.Ball_3_Average, ball4 = p.Ball_4_Average, ball5 = p.Ball_5_Average, powerball = p.Powerball_Average }).ToList();


        return View(viewMega);
    }

Currently I'm only able to pass one set of those results to my view:

@{
    foreach (var item in Model )
    {

        <tr>
            <td>
                @item.ball1
            </td>
            <td>
                @item.ball2
            </td>
            <td>
                @item.ball3
            </td>
            <td>
                @item.ball4
            </td>
            <td>
                @item.ball5
            </td>
            <td>
                @item.megaball
            </td>
        </tr>

Is there away that I can pass both of those stored procedure results to one view? Or at least any way that I can achieve this another way? Thanks!

Soner Gönül
  • 97,193
  • 102
  • 206
  • 364
aqwright31
  • 169
  • 2
  • 13

2 Answers2

3

Create a ViewModel...

public class PowerMega
{
   public List<mega> Megas {get;set;}
   public List<power> Powers {get;set;}
}

You can then create your ViewModel..

var megaMean = _db.GetMegaMillionsMean();
var powerMean = _db.GetPowerballMean();
var vm = new PowerMega();
vm.Megas = megaMean.Select(p => new mega {ball1 = p.Ball_1_Average, ball2 = p.Ball_2_Average, ball3 = p.Ball_3_Average, ball4 = p.Ball_4_Average, ball5 = p.Ball_5_Average, megaball = p.MegaBall_Average}).ToList();
vm.Powers = powerMean.Select(p => new power { ball1 = p.Ball_1_Average, ball2 = p.Ball_2_Average, ball3 = p.Ball_3_Average, ball4 = p.Ball_4_Average, ball5 = p.Ball_5_Average, powerball = p.Powerball_Average }).ToList();


return View(vm);

Your View would then need to be types like this...

@model namespace.PowerMega
Christian Phillips
  • 18,399
  • 8
  • 53
  • 82
0

You could either pass via ViewBag and access the ViewBag items in View

var megaMean = _db.GetMegaMillionsMean();
var powerMean = _db.GetPowerballMean();
//object mega = null;
List<mega> viewMega = megaMean.Select(p => new mega {ball1 = p.Ball_1_Average, ball2 = p.Ball_2_Average, ball3 = p.Ball_3_Average, ball4 = p.Ball_4_Average, ball5 = p.Ball_5_Average, megaball = p.MegaBall_Average}).ToList();
List<power> viewPower = powerMean.Select(p => new power { ball1 = p.Ball_1_Average, ball2 = p.Ball_2_Average, ball3 = p.Ball_3_Average, ball4 = p.Ball_4_Average, ball5 = p.Ball_5_Average, powerball = p.Powerball_Average }).ToList();

ViewBag.MegaList = viewMega;
ViewBag.PowerList = viewPower;

Or create a viewModel and pass it to view as mentioned in the previous answer

Rajesh MG
  • 321
  • 1
  • 3
  • 8