Dan*_*don 34 asp.net asp.net-mvc asp.net-mvc-3
我正准备负责领导一个小型ASP.net MVC应用程序的开发.这是我第一次创建MVC应用程序,所以我很兴奋!
我仔细阅读了文档,我觉得我对MVC的工作方式有了一般的了解.但是,如果我理解正确,服务器控件(例如GridView)不是MVC的一部分.
我的问题是:为什么?在我的开发工作室,我已经习惯使用像GridView和MS Chart Controls这样的控件,在没有它们的情况下开发我几乎完全失去了.看起来几乎就像重新开始.
为什么服务器控件不可用?微软如何期望我在没有他们的情况下工作?有哪些替代方案?
Dar*_*rov 61
我的问题是:为什么?
因为它们中的大多数依赖于ViewState和Postback模型之类的东西,后者模型是经典WebForms模型的一部分,在ASP.NET MVC中不再存在.这些服务器端控件依赖于将对服务器执行回发的事件,这些事件在隐藏字段(ViewState)中保持其状态.在ASP.NET MVC中,您不再使用诸如的事件Button1_Click
.在ASP.NET MVC中,您使用模型,控制器和视图.Controller负责接收用户请求,查询模型,将结果转换为视图模型,并将此视图模型传递给View,View负责以某种形式显示它.
在ASP.NET MVC中,有一些HTML帮助程序可用于在视图之间生成一些可重用的HTML片段.您可以查看Telerik ASP.NET MVC套件中的此类帮助程序.他们称之为控件,但它们与经典的WebForms服务器端控件无关.他们只是HTML助手.
基本上经典的WebForms是Web的漏洞抽象.微软在设计这个框架时所做的就是将现有的Windows开发人员技能带到网络上,这种技能越来越强大.但由于网络仍然是大多数开发人员尚不熟悉的新技术,他们创建了这种抽象来隐藏www的工作方式.那些开发人员习惯于在他们的Windows窗体上拖放控件,双击为他们生成一些代码的按钮,在这些按钮中放置他们的数据访问逻辑等等.借助WebForms,该模型转换为Web应用程序开发.HTTP协议成功地隐藏在这个名为WebForms的抽象背后.例如,您不需要知道HTML,也不需要Javascript,甚至不需要CSS来使用WebForms创建网站,这非常好,因为框架为您提取所有这些内容.不幸的是,通过这样做,它可以防止您轻松利用某些人在开发Web应用程序时可能需要的低级Web技术的全部功能.
ASP.NET MVC所做的基本上是删除这个漏洞的抽象,并将www以其创建者的方式带给开发人员.与传统的WebForms相比,ASP.NET MVC还不够成熟,所以你不能期望找到相同范围的可用控件和小部件,但事情正在慢慢转变.
我建议你从ASP.NET MVC开始:http://asp.net/mvc.继续,观看视频,播放样本,看看ASP.NET MVC是否适合您.当然,如果你遇到一些特定的困难或问题,请不要犹豫,回到这里问问题.
我已经习惯使用像GridView和MS Chart Controls这样的控件,在没有它们的情况下开发我几乎完全失去了.看起来几乎就像重新开始.
在这种情况下,重新开始是好的.
我经历了类似的旅程.如果直接HTML吓到你,请尝试使用System.Web.UI.HtmlControls
命名空间.这将允许您访问标准HTML控件,但如果需要,您仍然可以将它们转换为服务器控件(通过指定runat="server"
属性或将它们转换为等效的ASP.NET控件.
除了Darin的答案之外,ASP.NET还有另一个问题:你必须遵守微软对网络的看法.那GridView
你的爱?它产生了糟糕的HTML.Paging
它提供的控件?更糟.即使您对HTML合规性知之甚少,嵌套表也应该让您感到寒心.从某种程度上说,使用a的每个人GridView
都很幸运,微软(以及较小程度上谷歌和Mozilla)支持的遗留网络来自这样一个可怕的起点.
最后,总结一下:我的建议是,您尝试仅使用重写页面或开发新的Web应用程序(尽可能最好)HtmlControls
.您可能需要学习一些JavaScript/jQuery,并且可能不得不冒险进入AJAX世界,以使您的控件按照您希望的方式运行.
使用它作为进入MVC世界的垫脚石.您将不会使用相同的技术(并且可能会丢弃大量的JavaScript/jQuery),但它将帮助您以更小,更容易吸收的块来改变您对Web开发的思考方式.
最终,无论您喜欢ASP.NET控件,您都将拥有更大的自由度,并且您还将开发利用更新技术的网站,这将为您的网站提供附加价值.
归档时间: |
|
查看次数: |
19796 次 |
最近记录: |