你可以使用ViewBag作为MVC 3 WebGrid中的数据源吗?

时间:2011-03-13 22:42:15

标签: asp.net asp.net-mvc asp.net-mvc-3 razor

如果是这样,那将是什么语法。我找不到太多文档,而且我的工作没有用。

控制器类:

public ActionResult Results()
    {                   

        List<GMUOverview> _results = new List<GMUOverview>
        {
            new GMUOverview { GMU = "EE00101R", UnitsIncluded = "12,13,14", SuccessRate = "19%", MinReqResPoints = "3", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
            new GMUOverview { GMU = "EE00102R", UnitsIncluded = "12,13,64", SuccessRate = "19%", MinReqResPoints = "3", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
            new GMUOverview { GMU = "EE00103R", UnitsIncluded = "12,43,14", SuccessRate = "21%", MinReqResPoints = "4", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
            new GMUOverview { GMU = "EE00104R", UnitsIncluded = "22,13,14", SuccessRate = "22%", MinReqResPoints = "5", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
            new GMUOverview { GMU = "EE00105R", UnitsIncluded = "12,13,14", SuccessRate = "33%", MinReqResPoints = "6", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
            new GMUOverview { GMU = "EE00106R", UnitsIncluded = "12,13,14", SuccessRate = "44%", MinReqResPoints = "7", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
        };


        ViewBag.Result = _results;        

        return View();
    }

查看:

@using (Html.BeginForm())
{   

@{
    var grid = new WebGrid(ViewBag.Result);

      <div id="grid"> 
        @grid.GetHtml() 
    </div> 

 }

}

1 个答案:

答案 0 :(得分:2)

为什么使用ViewBag代替视图模型和强类型视图?这是丑陋/坏/弱类型/废话/(你可以在这里想到任何坏词/诅咒)?

如果,尽管我咆哮你决定使用ViewBag,这里是正确的语法:

@{
    var grid = new WebGrid(ViewBag.Result);
}

@using (Html.BeginForm())
{   
    <div id="grid"> 
        @grid.GetHtml() 
    </div> 
}

当然使用视图模型的正确方法:

public ActionResult Results()
{                   
    var _results = new List<GMUOverview>
    {
        new GMUOverview { GMU = "EE00101R", UnitsIncluded = "12,13,14", SuccessRate = "19%", MinReqResPoints = "3", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
        new GMUOverview { GMU = "EE00102R", UnitsIncluded = "12,13,64", SuccessRate = "19%", MinReqResPoints = "3", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
        new GMUOverview { GMU = "EE00103R", UnitsIncluded = "12,43,14", SuccessRate = "21%", MinReqResPoints = "4", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
        new GMUOverview { GMU = "EE00104R", UnitsIncluded = "22,13,14", SuccessRate = "22%", MinReqResPoints = "5", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
        new GMUOverview { GMU = "EE00105R", UnitsIncluded = "12,13,14", SuccessRate = "33%", MinReqResPoints = "6", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
        new GMUOverview { GMU = "EE00106R", UnitsIncluded = "12,13,14", SuccessRate = "44%", MinReqResPoints = "7", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
    };
    return View(_results);
}

然后:

@model System.Collections.Generic.List<AppName.Models.GMUOverview>
@{
    var grid = new WebGrid(Model);
}

@using (Html.BeginForm())
{   
    <div id="grid"> 
        @grid.GetHtml() 
    </div> 
}