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

Stimulsoft 没有在智能手机中显示正确的 pdf 字体

如何在 C#/MVC 4 中的 Html.TextBoxFor 中输入占位符文本

强制从 /bin 而不是 GAC 加载程序集?

在 aspx 页面中使用 if else 和 eval

是否可以在没有那些 .svn 文件夹的情况下从 subversion 签出文件?

如何在不使用 Session 的情况下在 ASP.net 中的页面之间传递值

c# - 如何从列表中获取值的总和?

Request.Params 和 Request.Form 什么时候不同?

在 IIS 上托管 ASP.NET 5 项目

无法确定条件表达式的类型,因为 'string' 和 'System.DBNull' 之间没有隐式转换

ASP.NET 中的 <% %>(嵌入式代码块)

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

如何从后面的 ASP.NET 代码访问 HTML 表单输入

如何将 LINQ 左外连接限制为一行

如何使div按钮提交其所在的表单?

什么时候应该使用 Response.Redirect(url, true)?

删除 HTML 或 ASPX 扩展

如何在 GridView 中隐藏 TemplateField 列

ModalPopupExtender OK 按钮单击事件未触发?

Session.Clear() 与 Session.RemoveAll()