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