【问题标题】:Best practice for AJAX calls in .Net 1.1.Net 1.1 中 AJAX 调用的最佳实践
【发布时间】:2023-04-07 12:29:01
【问题描述】:

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

自从我使用 jQuery 和 Rails 很长一段时间以来,类似 AJAX 的问题解决方案一直在我脑海中浮现,我忍不住写了它们。

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

我使用 jQuery 来处理我所有的 AJAX 内容。

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

我在ajaxprojects 上看到了这篇文章,它使用了一种有点相似的技术,只是他们每个 ajax 操作只做 1 页。

【问题讨论】:

    标签: .net jquery ajax .net-1.1


    【解决方案1】:

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

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

    【讨论】:

    • ashx 听起来确实是一个更好的选择
    【解决方案2】:

    您离开 Web 控制范式的次数越多,使用的视图状态越少,它就会变得越简单,这很神奇,但也是事实。但是,ASP.NET 开发使我们免受 HTML、CSS 和 JavaScript 的影响,而且很少有 ASP.NET 开发人员准备立即如此直接地处理它们,因此首先采取中间立场可能是最好的。

    好消息是,ASP.NET 1.1 与 jQuery 配合得非常好,您可以做任何您想做的事情,从完全避免使用 Web 控件并仅使用带有 jQ​​uery 的原始 HTML,到充分利用 ASP.NET 并在其中添加一个小的 jQuery,比如说,在客户端上验证,从而避免回发。

    采取中间路线的一个例子可能是创建一个普通的数据网格,最好是在一个单独的页面上,只被一个表单元素包围(删除 runat=server),或者可能只是一个 div 元素,并提供它通过 jQuery ajax 加载方法。

    我个人不使用任何 Microsoft Ajax 库。每次我看到人们在示例中使用它们时,它们似乎只会使 jQuery 已经做的更简单、更快、更好的事情复杂化。这些东西很简单,不要在没有一些真正好的理由的情况下通过引入不必要的 MS 库和使用庞大的 XML 来使其变得丑陋和缓慢。我还亲自从所有页面中删除了所有 ViewState,并且还没有发现 ViewState 对我做任何有用的事情,而不仅仅是直接处理更简单和更有效。事实证明我们从来不需要它,但 Ajax 达成了交易。页面大小的减少与速度的相应增加是一个启示。更充分地生活在实际的 Web 范式中比生活在漏洞百出的 ASP.NET 魔法中要简单得多。

    HTH。

    迈克

    附:哇,每个人都加入了更简单、更好的 Web 开发:Controlling HTML in ASP.NET WebForms

    【讨论】:

    • 经过一年的 Rails 开发再看 Asp.Net 1.1 真的很吓人,它的丑陋得令人震惊
    • 我意识到这是几个月前的事了,但那个链接很棒,迈克,希望我去年能看到这个!
    【解决方案3】:

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

    如果他们在 2007 年的软件包中仍然有 1.1 版本,我不会感到惊讶,因为它们的兼容性非常好。

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-10
        • 2016-03-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多