我正准备负责领导一个小型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相关问答推荐

ASP.NET MVC forEach 循环仅返回 1 个值

Asp.Net Core 创建一个控制器来使用 SendGrid 发送邮箱

为什么 Web 架构应该是松耦合的?

你能从请求变量中确定时区吗?

指定的 CGI 应用程序遇到错误,服务器终止了进程

在 ASP.NET 中更改错误消息的语言

FluentValidation 使用数据库的唯一名称验证

发布发布事件

Windows 运行 ASP.NET 的 IIS 替代方案

Owin 中是否有来自 Global.asax 的 Application_End?

IIS 会话超时与 ASP.NET 会话超时

使用 jQuery 调用 ASP.NET PageMethod/WebMethod - 返回整个页面

您如何在 .net WebApi2 应用程序中的 OAuth2 令牌请求中使用额外参数

单独装配和路由中的控制器

解析器错误消息:无法加载类型网络营销

ServiceStack 示例应该以什么顺序被理解?

为什么 HttpWebRequest 会抛出异常而不是返回 HttpStatusCode.NotFound?

ASP.Net 错误:应用程序池的标识无效

如何进入 IIS 管理器?

如何在 .NET Core 中实现 DbContext 连接字符串?