从WebForms页面进行AJAX调用的最佳方法

时间:2013-10-02 15:59:34

标签: javascript jquery asp.net ajax webforms

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

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

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

  3. 我假设我也可以使用jQuery来进行调用,尽管过去的尝试失败了,通常是由于数据返回方式的问题(JSON等)。

  4. 我的目标是传递一个字符串片段并获取与该片段匹配的项目列表。速度会很好。我能得到一些建议吗?

3 个答案:

答案 0 :(得分:4)

使用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
}

答案 1 :(得分:1)

我总是使用JQuery AJAX调用:

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

如果您还有其他问题,请与我们联系。

答案 2 :(得分:1)

我将投入jQuery AJAX调用。

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

如果是一次性函数调用来执行自动完成功能(我假设基于您描述的问题),您可以通过调用代码隐藏方法来实现,并且您可以使用AjaxControlToolkit的AutoCompleter控件。但是如果你注意到你正在通过AJAX进行越来越多的调用,你需要考虑将你的服务调用放到一个真正的Web服务中。