【发布时间】:2011-09-19 03:31:28
【问题描述】:
尝试学习 ASP.NET(拥有数年经典 ASP 开发经验),并与无数用于呈现数据的服务器控件作斗争。
我正在尝试使用服务器端数据对象来透视数据。一个很好的例子是一个包含三列的客户表:1) 客户 ID,2) 客户名称 3) 订单 ID 的嵌套列表。当然,客户和订单之间存在一对多的关系。在经典的 ASP 中,我会使用两个数组——一个用于客户,一个用于订单——我会为客户数组的每次迭代遍历一次订单数组,并根据需要提取适当的订单记录。
相反,我正在尝试利用 .NET 框架控件,因此我想将订单转储到 DataTable 中,然后我将为客户数据创建一个 GridView,其中包含自定义 TemplateField 调用循环遍历 Orders DataTable 并将正确的记录绑定到某种对象(ListView?文字?),然后绑定到客户 GridView 中的适当行。
这是对的吗?我是否选择了正确的控件用于此目的?我很想只使用 VB 数组并按照我一直这样做的方式进行操作(将一串 HTML 与重复连接混合在一起),但我正在努力利用框架的效率。
感谢您的指导。
【问题讨论】:
-
由于您习惯了经典 ASP,我强烈建议您跳过 ASP.NET Web 窗体(以及所有服务器控件),而转而使用 Razor view engine 的 ASP.NET MVC 3
-
有趣。我在想我会先学习 Web 窗体控件,然后再进入 MVC。但听起来你会建议其他方式?
-
作为一个无时无刻不在使用 Web 表单的人,要赶上 MVC 有点困难。因为 Web 表单让生活变得如此简单(拖放!)而直接回到 HTML 和循环实际上很难。但是,因为你对经典的 ASP 非常了解,我相信 MVC 会好好对待你的!检查asp.net/mvc,有很棒的视频教程! Razor Engine 简直太棒了! :)
-
是的。倒不是 Web Forms 不好或者别的什么,只是它封装了太多关于标记和 HTTP 协议的内容,有时看起来很笨拙。使用 Razor 的服务器端标记非常相似,主要区别在于类型系统,并且您有一个更好的编辑器,具有代码完成等等。
-
WebForms 和 MVC 是两种截然不同的做事方式。 MVC 是一种更“面向 Web”的应用程序开发方式,而使用 WebForms 感觉更像是在开发桌面风格的应用程序。无论哪种情况,他们都有自己的位置。在某些情况下,MVC 在某些情况下是矫枉过正的,反之亦然。无论如何,如果你花一些时间在两者上并决定什么对你来说更自然,这不会有什么坏处。话虽如此,MVC 是“新来的孩子”,但仍然是一个非常漂亮的框架。