我是ASP.NET MVC 3的新手。我正在尝试创建一个基本的WebGrid来尝试学习它是如何工作的。目前,我有以下代码:
@{
ViewBag.Title = "Home Page";
}
<h2>@ViewBag.Message</h2>
<p>
@{
var grid = new WebGrid();
}
@grid.GetHtml()
</p>
当我运行此代码时,我收到一条错误消息:“在执行此操作之前必须绑定数据源。”我的问题是,如何将此WebGrid绑定到某些客户端JSON。我没有后端数据库。我只是想了解WebGrid,而不必连接数据库。
谢谢!
答案 0 :(得分:2)
与ASP.NET MVC应用程序一样,您始于视图模型:
public class MyViewModel
{
public int Foo { get; set; }
public string Bar { get; set; }
}
然后是控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new[]
{
new MyViewModel { Foo = 1, Bar = "bar 1" },
new MyViewModel { Foo = 2, Bar = "bar 2" },
new MyViewModel { Foo = 3, Bar = "bar 3" },
};
return View(model);
}
}
最后是相应的视图(~/Views/Home/Index.cshtml
):
@model IEnumerable<MyViewModel>
@{
var grid = new WebGrid(Model);
}
@grid.GetHtml()
因此,您可以看到网格的数据源实际上是控制器填充并传递给视图的视图模型。实际数据可能来自任何地方。虽然填充视图模型并将其传递给视图,但控制器有责任。
要了解有关WebGrid控件的更多信息,您可以查看following article。这是another one。