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

时间:2009-01-05 20:52:12

标签: .net jquery ajax .net-1.1

好吧,我的最新合同迫使我进入了.Net 1.1的古董世界。

由于我一直在使用jQuery和Rails很长一段时间,因此问题解决方案的AJAX继续弹出我的脑袋,我无法帮助写它们。

所以我相当直接的问题是我需要在记录上执行3个操作(插入,更新和删除)我可以使用ASP.Net控件和javascript处理索引和显示。

我正在为我的所有AJAX使用jQuery。

我想到这样做的方法是引入一个简单的ASPX页面,它充当这三个动作的控制器,给它一个贫血的视图,并使用字符串连接处理所有返回数据的呈现。这里有更好的模式吗?你是怎么把ajax攻入ASP.Net 1.1的?

我在ajaxprojects上看到这篇文章使用了一种类似的技术,除了他们每个ajax动作做1页。

4 个答案:

答案 0 :(得分:3)

我们过去常常在经典ASP中使用ajax,只需将XML消息发布到ASP页面即可从请求体中加载xml。

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

答案 1 :(得分:1)

你离开Web控制范例越多,你使用的视图状态就越少,它就会越简单,这是惊人的但却是真实的。但是,ASP.NET开发使我们不受HTML,CSS和JavaScript的影响,并且很少有ASP.NET开发人员准备好直接处理它们,所以最初采取中间立场可能是最好的。

好消息是,ASP.NET 1.1可以很好地运行jQuery,你可以做任何你想做的事情,从完全避免Web控件到仅仅使用带有jQuery的原始HTML,到充分利用ASP.NET和直接使用一个小jQuery,比如说,在客户端验证,从而避免回发。

采用中间路径的一个示例可能是创建一个普通的数据网格,理想情况下是在一个单独的页面上关闭,只包含一个表单元素(删除了runat = server),或者只是一个div元素,并提供它通过jQuery ajax加载方法。

我个人不使用任何Microsoft Ajax库。每当我看到人们在样本中使用它们时,它们似乎只会使jQuery已经变得更简单,更快更好。这个东西是直截了当的,不要通过拉入不必要的MS库和使用庞大的XML而没有一些非常好的理由使它变得难看和缓慢。我还亲自从所有页面中删除了所有ViewState,并且还没有找到一个案例,其中ViewState为我做了一些对我来说有用的东西,它不是更简单,更有效,只是直接处理。事实证明我们从来不需要它,但阿贾克斯密封了这笔交易。页面大小的减少以及相应的速度增加是一个启示。在实际的网络范例中更充分地生活比使用漏洞的ASP.NET魔法更加简单和优秀。

HTH。

麦克

P.S。哇,每个人都加入了更简单,更好的网站开发:Controlling HTML in ASP.NET WebForms

答案 2 :(得分:0)

继续使用jquery滚动自己并不是一个坏主意,但显然你必须“重新发明轮子”在现有控件中创建基本的ajax支持。完成项目的最快方法是跟踪支持.NET 1.1的Infragistic控件的最新版本。

如果他们在2007年的软件包中仍然有1.1种口味,我不会感到惊讶,因为它们在兼容性方面相当不错。

答案 3 :(得分:0)

我在我的1.1项目中使用AjaxPro取得了相当大的成功。我使用的模型是构建用户控件来表示'views'然后在ajax请求中我动态加载usercontrol并在控件上调用Render()方法。

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