为什么我不应该在MVC中使用ASP.NET数据网格控件

时间:2010-03-13 23:17:14

标签: asp.net-mvc datagridview asp.net-mvc-2

我不想把它变成“哪个更好... MVC或WebForms ”类型的问题。我确定已经在这里问了很多次。

我的问题:如果我正在构建MVC Web项目,为什么不在我的“Views”.aspx页面上使用ASP.NET数据网格控件?

4 个答案:

答案 0 :(得分:5)

控件依赖于MVC中不可用的Viewstate。此外,所有行为都基于WebForms事件和回发模型,您必须在MVC中重新创建它们才能使它们工作。您可以搜索备用的,MVC友好的网格(可能是基于jQuery的)。我知道Telerik在MVC controls下发布了一组可能对您有所帮助的open source

答案 1 :(得分:2)

您无法在MVC中使用Web窗体控件,因为它们依赖于视图状态。请改用Mvc Controls工具包的数据网格。它具有分页,插入删除和更新功能,它完全是模板化的(你可以随意设置它)。看看here

答案 2 :(得分:0)

datagrid控件依赖于不符合MVC思维方式的回发事件(回发转到后面的页面代码而不是控制器)。你可以使用一个没有任何回发功能,我相信,但你也可以直接制作一些东西。

答案 3 :(得分:0)

因为ASP.NET DataGrid / GridView有太多责任适合MVC模式。你必须在你的视图中添加一些代码隐藏来数据绑定网格 - 属于控制器的代码。

任何使用回发的东西都不适用于MVC,因此DataGrids的分页和排序对你没有任何好处。所以使用它确实没有任何好处。

如果您正在寻找灵活的网格“控件”(MVC更喜欢术语HTML帮助程序),MvcContrib grid非常好。