Asp.net的WebForm已经是一种相当落后和有缺陷的技术了, 完全可以撤了
小大飞 2017-01-16 06:29:14 http://bbs.csdn.net/topics/390451604?page=4#new_post
很多人说这个楼主的技术水平有问题,我认识是没问题的。
因为webform确实,企图通过在html标签中的runat="server",在iis接受请求后,通过aspx页面引擎解析,想在服务器端,将所有标签构建成对象,各种Label对象,Button对象,然后还有一大堆属性Css,Style等等,包含一大堆本该服务器不应该关心的东西。
我认为只有对html页面进行数据填充的地方,才需要服务器端关心,其他地方都不是服务器端的责任,软件开发时,页面表现,前端工程师都写好了,不该是服务器关心的。
然后Webform为了干预这引擎生成的对象,以及深入的说干预最后生成的html页面(字符串)加了很多事件!这个就是页面生命周期,这个本来没什么问题。但是每次事件回传都要把这些事件执行一遍就有点问题了。
每次事件回传,都对页面重新生成,将客户端提交的form表单元素解析,然后还原html字符串中各个地方的值,这是是楼主说的框架设计的问题吧!
服务器控件的存在,页面生命周期的过长,这些与ajax确实是冲突的,如ViewState的完整性验证,不允许客户端修改服务器控件生成的内容,这个只能在服务器端对内容进行更改,这样就可ajax冲突了。比如:
刚开始用服务器控件做了个多级联动,然后如果在前端用ajax修改了控件生成的内容,再次提交到后台就会验证出错,不得不关闭安全验证。
ajax请求也不得不再写一个ashx页面,不能请求自身这个文件,不然的话,又一次生命周期,又一次状态还原。整个框架给人的感觉是想要精细控制的话,自己又必须写很多代码,或者以前的框架做了过多的事情,不够清爽!