我正准备负责领导一个小型ASP的开发.net MVC应用程序.这是我第一次创建MVC应用程序,所以我很兴奋!

我仔细阅读了文档,我觉得我对MVC的工作方式有了大致的了解.然而,如果我理解正确的话,服务器控件(例如GridView)不是MVC的一部分.

我的问题是:为什么?在我的开发工作室,我非常习惯使用像GridView和MS Chart控件这样的控件,如果不使用它们进行开发,我几乎完全不知所措.这看起来几乎像是从头开始.

为什么服务器控件不可用?微软希望我在没有他们的情况下如何工作?还有什么 Select ?

推荐答案

我的问题是:为什么?

因为它们大多依赖于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是否适合你.当然,如果你遇到了一些特殊的困难或问题,不要犹豫,回到这里来问它.

Asp.net相关问答推荐

单个方法(即扩展方法)之间的调用不明确

DBSet 不包含 Where 的定义

如何为发布模式设置调试错误

判断会话是否为空

如何更改 .ASPX 自动格式化设置 (Visual Studio)

UseSqlServer 方法缺少 MVC 6

GridView 与嵌套类的属性绑定

您如何以编程方式填写表格并发布网页?

带有文件名的 ASP.net MVC4 WebApi 路由

以编程方式从后面的代码中关闭 aspx 页面

无法序列化会话状态

无法共同创建探查器错误 - 但未使用探查器

实体框架:如何解决外键约束可能导致循环或多个级联路径?

您使用哪个 .NET Memcached 客户端,EnyimMemcached 与 BeITMemcached?

应该如何使用 RedirectToRoute?

Azure Functions 中的 DI

ASP.NET MVC Url Route 支持(点)

在资源文件中使用 HTML

Docker 中的 ASPNETCORE_ENVIRONMENT

避免在 ASP.NET MVC 中使用会话状态是一种好习惯吗?如果是,为什么以及如何?