TLDR :UpdatePanels或PageMethods?
据我所知,有三种方法可以构建ASP.NET Web Forms 应用程序:
我认为现在每个人都同意选项1不再提供令人满意的用户体验。 (它可能已经工作了一段时间,但SmartNavigation got deprecated a long time ago,只支持IE,并且从未像现在这样稳定。)
问题在于选项2和3并没有真正协同工作:只要你尝试使用PageMethods做一些非常重要的事情(比如用条目填充列表),the view state breaks,从而打破现有的"基于UpdatePanel的"码。目前,there's no easy way to work around that。
由于UpdatePanels和PageMethods似乎彼此完全不兼容,是否有一些官方推荐用于新项目?
为了防止这成为一个主观问题,我想将此问题限制在微软的官方声明和微软员工的(半)官方声明中。
答案 0 :(得分:0)
我相信你可以想象,这个问题的答案非常“取决于它”。正如你通过要求官方的微软认可,你已经回避了这样一个问题的主观性,但是,来自微软官方消息来源的前MS员工如何this video。视频摘要在总结方面做得相当不错(鉴于这是一个总结,这很好):
第一种方法是使用UpdatePanel,不需要在客户端或服务器端写入其他代码。使用UpdatePanel的好处是一切都能自动运行。缺点是客户端需要将大量数据包含在AJAX请求和响应中,并且在服务器上需要执行整页生命周期。第二种方法是使用网络回调,其中需要在客户端和服务器端写入额外的代码。使用网络回调的好处是,在客户端,它需要非常少的数据包含在AJAX请求和响应中,并且在服务器上它只需要执行被调用的服务方法。痛苦是编写必要代码所花费的时间和精力。
主观,非官方位:
就个人而言,我几乎不会在任何时候都避免使用UpdatePanels;与许多WebForms功能一样,它们可以控制您并引入大量令人讨厌的标记和过多(通常是内联)JavaScript,当您拥有一个现代的,功能丰富的Web应用程序时,可能会导致各种意外行为。 PageMethods让您可以根据自己的开发实践自行控制。
如果他们不能一起工作那么,正如我所看到的那样,问题归结为“我能确定UpdatePanels会给我所需要的一切吗?”如果没有,你做出决定。
据我所知,这两种方法都没有被正式弃用或“建议反对。”