Asp.net 您可以在MVC3WebGrid中使用ViewBag作为数据源吗?

Asp.net 您可以在MVC3WebGrid中使用ViewBag作为数据源吗?,asp.net,asp.net-mvc,asp.net-mvc-3,razor,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

如果是的话,语法是什么。我没有找到太多的文档,我所拥有的也不起作用

控制器类:

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();
    }
public ActionResult结果()
{                   
列表_结果=新列表
{
新的GMU概览{GMU=“EE00101R”,UnitsIncluded=“12,13,14”,SuccessRate=“19%”,MinReqResPoints=“3”,MinReqResPoints=“5”,AvailableLicense=“123”,TotalApplications=221,Season=“1”,Year=“2009”},
新GMU概览{GMU=“EE00102R”,UnitsIncluded=“12,13,64”,SuccessRate=“19%”,MinReqResPoints=“3”,MinReqResPoints=“5”,AvailableLicenses=“123”,TotalApplications=221,Season=“1”,Year=“2009”},
新的GMU概览{GMU=“EE00103R”,UnitsIncluded=“12,43,14”,SuccessRate=“21%”,MinReqResPoints=“4”,MinReqResPoints=“5”,AvailableLicense=“123”,TotalApplications=221,Season=“1”,Year=“2009”},
新的GMU概览{GMU=“EE00104R”,UnitsIncluded=“22,13,14”,SuccessRate=“22%”,MinReqResPoints=“5”,MinReqResPoints=“5”,AvailableLicense=“123”,TotalApplications=221,Season=“1”,Year=“2009”},
新的GMU概览{GMU=“EE00105R”,UnitsIncluded=“12,13,14”,SuccessRate=“33%”,MinReqResPoints=“6”,MinReqResPoints=“5”,AvailableLicense=“123”,TotalApplications=221,Season=“1”,Year=“2009”},
新的GMU概览{GMU=“EE00106R”,UnitsIncluded=“12,13,14”,SuccessRate=“44%”,MinReqResPoints=“7”,MinReqResPoints=“5”,AvailableLicense=“123”,TotalApplications=221,Season=“1”,Year=“2009”},
};
结果=_结果;
返回视图();
}
视图:

@使用(Html.BeginForm())
{   
@{
var grid=新的WebGrid(ViewBag.Result);
@grid.GetHtml()
}

}

为什么要使用
ViewBag
而不是视图模型和强类型视图?这是丑陋的/糟糕的/弱类型的/垃圾的/(在这里放任何你能想到的坏词/诅咒)

如果,尽管我大喊大叫,你还是决定使用
ViewBag
,下面是正确的语法:

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

@using (Html.BeginForm())
{   
    <div id="grid"> 
        @grid.GetHtml() 
    </div> 
}
@{
var grid=新的WebGrid(ViewBag.Result);
}
@使用(Html.BeginForm())
{   
@grid.GetHtml()
}
或者使用视图模型的正确方法,当然:

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);
}
public ActionResult结果()
{                   
var_results=新列表
{
新的GMU概览{GMU=“EE00101R”,UnitsIncluded=“12,13,14”,SuccessRate=“19%”,MinReqResPoints=“3”,MinReqResPoints=“5”,AvailableLicense=“123”,TotalApplications=221,Season=“1”,Year=“2009”},
新GMU概览{GMU=“EE00102R”,UnitsIncluded=“12,13,64”,SuccessRate=“19%”,MinReqResPoints=“3”,MinReqResPoints=“5”,AvailableLicenses=“123”,TotalApplications=221,Season=“1”,Year=“2009”},
新的GMU概览{GMU=“EE00103R”,UnitsIncluded=“12,43,14”,SuccessRate=“21%”,MinReqResPoints=“4”,MinReqResPoints=“5”,AvailableLicense=“123”,TotalApplications=221,Season=“1”,Year=“2009”},
新的GMU概览{GMU=“EE00104R”,UnitsIncluded=“22,13,14”,SuccessRate=“22%”,MinReqResPoints=“5”,MinReqResPoints=“5”,AvailableLicense=“123”,TotalApplications=221,Season=“1”,Year=“2009”},
新的GMU概览{GMU=“EE00105R”,UnitsIncluded=“12,13,14”,SuccessRate=“33%”,MinReqResPoints=“6”,MinReqResPoints=“5”,AvailableLicense=“123”,TotalApplications=221,Season=“1”,Year=“2009”},
新的GMU概览{GMU=“EE00106R”,UnitsIncluded=“12,13,14”,SuccessRate=“44%”,MinReqResPoints=“7”,MinReqResPoints=“5”,AvailableLicense=“123”,TotalApplications=221,Season=“1”,Year=“2009”},
};
返回视图(_结果);
}
然后:

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

@using (Html.BeginForm())
{   
    <div id="grid"> 
        @grid.GetHtml() 
    </div> 
}
@model System.Collections.Generic.List
@{
var grid=新的WebGrid(模型);
}
@使用(Html.BeginForm())
{   
@grid.GetHtml()
}

我想使用ViewModel,但我已经在页面上使用了另一个模型,并且从该冲突中得到了一个错误。如果我能通过,我就不会使用ViewBag。谢谢@KeelRisk,只需为当前模型创建另一个属性来保存网格数据源
列表
。因此,您可以混合当前模型和数据源。这就是为什么要使用视图模型。仅用于查看,不会中断模型中的其他数据。
@model System.Collections.Generic.List<AppName.Models.GMUOverview>
@{
    var grid = new WebGrid(Model);
}

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