在.Net 1.1中进行AJAX调用的最佳实践

4
好的,我最近的合同让我陷入了 .Net 1.1 古老的世界。由于我已经使用 jQuery 和 Rails 工作了相当长的时间,所以关于问题的 AJAX 类似解决方案一直在我的脑海中出现,我忍不住想写下来。 我的问题比较简单,我需要执行三个操作(插入、更新和删除)来处理记录,我可以使用 ASP.Net 控件和 JavaScript 处理索引和显示。 我使用 jQuery 处理所有 AJAX 相关的内容。我考虑的做法是引入一个简单的 ASPX 页面作为这三个操作的控制器,给它一个无趣的视图,并使用字符串拼接处理返回数据的所有呈现。这里有更好的模式可供使用吗?你是如何把 AJAX 嵌入 ASP.Net 1.1 中的?我看到了这篇帖子,链接是 ajaxprojects,他们使用了类似的技术,只不过是每个 AJAX 操作都有一个页面。
4个回答

3

我们过去在经典ASP中使用ajax,只需将XML消息发布到一个ASP页面,该页面将从请求正文中加载xml。

您可以使用ASHX页面(ASP.Net处理程序)来执行此操作。您不会有任何额外的页面对象开销。因此,您可以基本上创建一个Xml负载(或json或任何您想要的),将其发布到ashx页面,该页面具有一个单一的方法,该方法将检查请求执行所需操作并返回所需的结果。


ashx 确实听起来是更好的选择。 - Sam Saffron

1

越离开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 魔法共存要简单得多,也更好。
希望对你有所帮助。
Mike 附言:哇,每个人都加入到更简单、更好的 Web 开发中来了:控制 ASP.NET WebForms 中的 HTML

看着一年后的Rails开发,再回头看Asp.Net 1.1真的很可怕 :) 这些东西看起来如此臃肿和混乱,更糟糕的是我正在工作的项目没有CSS,所有的演示都是内联的,非常丑陋。 - Sam Saffron
我知道这已经过去几个月了,但那个链接很棒,Mike。真希望我去年就看到了它! - Kirschstein

0

继续使用jquery进行开发并不是一个坏主意,但显然你将不得不“重新发明轮子”,在现有控件中创建基本的ajax支持。完成项目最快的方法是找到支持.NET 1.1的Infragistic控件的最新版本。

如果他们仍然在他们的2007包中提供1.1版本,我不会感到惊讶,因为他们非常注重兼容性。


0

我在我的1.1项目中使用AjaxPro,并取得了相当大的成功。 我所使用的模式是建立用户控件来表示“视图”,然后在ajax请求中动态加载用户控件,并在控件上调用Render()方法。

当您调用Render()方法时,它将把您的控件HTML写入文本编写器,然后您可以通过ajax调用将其返回到客户端,并插入到占位符div中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接