【问题标题】:Best Way to Make AJAX Call from WebForms Page从 WebForms 页面进行 AJAX 调用的最佳方式
【发布时间】:2013-10-09 02:21:18
【问题描述】:

是否有推荐的方法在 WebForms 应用程序中进行 AJAX 调用?

  1. 我知道有内置的 ASP.NET AJAX 组件,但它们似乎有点重。我习惯在MVC中这样做,看起来很干净。

  2. 我可以使用页面方法,但它们要求我的方法是静态的,这使得访问我的数据库等变得更加困难。

  3. 我想我也可以只使用 jQuery 进行调用,尽管过去尝试这样做都失败了,通常是由于返回数据的方式(JSON 等)存在问题。

我的目标是传递一个字符串片段并返回与该片段匹配的项目列表。速度会很好。我可以得到一些建议吗?

【问题讨论】:

  • 我更喜欢 jQuery 的 AJAX,尽管 ASP.NET 通常对我如何格式化我的数据有话要说。发布您过去尝试过的失败的方法,我相信我们可以解决!

标签: javascript jquery asp.net ajax webforms


【解决方案1】:

我将在 jQuery AJAX 调用中投出我的一票。

但在我从事 WebForms 的这些年里,调用代码隐藏文件方法并不是首选方式。我会将功能公开为 Web 服务。您可以将其作为 WCF 或 WebAPI(来自 MVC,WebAPI 可能更适合您的专业知识)。

如果是一次性函数调用来执行 AutoComplete 功能(我假设基于您描述的问题),您可能可以通过调用代码隐藏方法来解决问题,您可以使用 AjaxControlToolkit 的 AutoCompleter 控件.但是,如果您发现通过 AJAX 进行的调用越来越多,则需要考虑将服务调用放入真正的 Web 服务中。

【讨论】:

    【解决方案2】:

    使用 HTTP 处理程序 (.ashx),这将赋予页面实例和灵活性,使其可通过 jQuery .ajax() 方法进行脚本调用,如下所示:

    $.ajax({
        url: "Handler/MyHandler.ashx",
        contentType: "application/json; charset=utf-8",
        data: { 'Id': '10000', 'Type': 'Employee' },
        success: OnSuccess,
        error: OnFail
    });
    
    function OnSuccess() {
        // Do whatever needs to happen on success here
    }
    
    function OnFail() {
        // Do whatever needs to happen on failure here
    }
    

    【讨论】:

      【解决方案3】:

      我总是使用 JQuery AJAX 调用:

      $.ajax({
        url: 'your url',
        headers: { headertitle: headerdata},
        cache: false,
        success: function(data) {
          //success function. Returned data is stored in the data variable.
        }
      });
      

      如果您还有其他问题,请告诉我。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-10
        • 2011-04-23
        • 2013-12-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多