如何将两个存储过程结果传递给一个MVC视图?

时间:2013-11-26 14:27:05

标签: c# asp.net-mvc asp.net-mvc-4 stored-procedures

在我的Controller中,我添加了代码来执行和检索两个存储过程:

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);
    }

目前我只能将一组结果传递给我的观点:

@{
    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>

我可以将这两个存储过程结果传递给一个视图吗?或者至少我可以通过另一种方式实现这一目标?谢谢!

2 个答案:

答案 0 :(得分:3)

创建ViewModel ...

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

然后,您可以创建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);

您的View将需要像这样的类型......

@model namespace.PowerMega

答案 1 :(得分:0)

您可以通过ViewBag传递并访问View

中的ViewBag项目
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;

或创建一个viewModel并将其传递给上一个答案

中提到的视图