我的问题是:为什么?
因为它们大多依赖于ViewState和回发模型等东西,这些模型是classic WebForms模型的一部分,在ASP中不再存在.NET MVC.这些服务器端控件依赖于将执行回发到服务器的事件,这些事件将其状态保存在隐藏字段(ViewState)中.在ASP.NET MVC您不再处理诸如Button1_Click
这样的事件.在ASP.NET MVC您可以使用模型、控制器和视图.控制器负责接收用户请求、查询模型、将结果转换为视图模型,并将该视图模型传递给视图,该视图负责以某种形式显示该模型.
在ASP.NET MVC有一些HTML助手,可以用来在视图之间生成一些可重用的HTML片段.例如,你可以看看Telerik ASP.NET MVC suite名这样的助手.他们称之为控件,但与classic 的WebForms服务器端控件无关.他们只是HTML助手.
从根本上说,传统的web表单是对web的一个漏洞百出的抽象.微软在设计这个框架的时候所做的就是将现有的Windows开发人员技能带到网络上,这一技能正在获得越来越大的发展势头.但是由于Web还是一项新技术,大多数开发人员还不熟悉,所以他们创建了这个抽象来隐藏WWW的工作方式.这些开发人员习惯于在他们的Windows窗体上拖放控件,双击为他们生成一些代码的按钮,他们将数据访问逻辑放在其中,等等.多亏了WebForms,这个模型被移植到了Web应用程序开发中.HTTP协议成功地隐藏在这种称为WebForms的抽象后面.例如,你不需要知道HTML,也不需要知道Javascript,甚至不需要知道CSS就可以用WebForms创建一个网站,这真的很棒,因为这个框架为你抽象了所有这些东西.不幸的是,这样做会妨碍您轻松地充分利用低级Web技术的全部功能,而有些人在开发Web应用程序时可能需要这些技术.
什么ASP.NETMVC所做的基本上是消除这种漏洞百出的抽象,并将www以其创造者所希望的方式带给开发者.ASP.与classic 的WebForms相比,NetMVC还不够成熟,因此您无法期望找到相同范围的可用控件和小部件,但情况正在缓慢变化.
我建议你从ASP开始.净MVC:http://asp.net/mvc.继续,观看视频,玩转示例,看看ASP.NETMVC是否适合你.当然,如果你遇到了一些特殊的困难或问题,不要犹豫,回到这里来问它.