我们过去在经典ASP中使用ajax,只需将XML消息发布到一个ASP页面,该页面将从请求正文中加载xml。
您可以使用ASHX页面(ASP.Net处理程序)来执行此操作。您不会有任何额外的页面对象开销。因此,您可以基本上创建一个Xml负载(或json或任何您想要的),将其发布到ashx页面,该页面具有一个单一的方法,该方法将检查请求执行所需操作并返回所需的结果。
越离开Web控件的范式,并且越少使用视图状态,它就会变得更简单,这是惊人而真实的。然而,ASP.NET开发屏蔽了HTML、CSS和JavaScript,很少有ASP.NET开发者能够立即直接处理它们,因此起初采取中间路线可能是最好的选择。
好消息是,ASP.NET 1.1与jQuery完美兼容,您可以尝试任何您想做的事情,从完全避免使用Web控件而只使用带有jQuery 的原始HTML,到充分利用ASP.NET并仅添加一点jQuery来验证客户端并避免postback。
采取中间路线的一个例子可能是创建一个普通的datagrid,最好放在一个单独的页面上,只包围一个表单元素(带有runat=server 移除),或者只是一个div元素,并通过jQuery ajax加载方法提供它。
我个人不使用任何 Microsoft Ajax 库。每次我看到别人在示例中使用它们时,它们似乎只会使 jQuery 已经更简单、更快、更好的事情变得更加复杂。这些东西很简单,不要通过引入不必要的 MS 库和使用笨重的 XML 使其变得丑陋和缓慢,除非有非常好的理由。我也个人从所有页面中删除了所有 ViewState,并且还没有找到一个 ViewState 对我有用的情况,这种情况不是直接处理更简单和更有效率。结果证明我们从来不需要它,但 Ajax 确定了这一点。随着页面大小的减小和速度的相应增加,这是一个启示。更完全地生活在实际的 Web 范式中比与漏洞百出的 ASP.NET 魔法共存要简单得多,也更好。继续使用jquery进行开发并不是一个坏主意,但显然你将不得不“重新发明轮子”,在现有控件中创建基本的ajax支持。完成项目最快的方法是找到支持.NET 1.1的Infragistic控件的最新版本。
如果他们仍然在他们的2007包中提供1.1版本,我不会感到惊讶,因为他们非常注重兼容性。
我在我的1.1项目中使用AjaxPro,并取得了相当大的成功。 我所使用的模式是建立用户控件来表示“视图”,然后在ajax请求中动态加载用户控件,并在控件上调用Render()方法。
当您调用Render()方法时,它将把您的控件HTML写入文本编写器,然后您可以通过ajax调用将其返回到客户端,并插入到占位符div中。