2

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

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

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

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

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

4

3 回答 3

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
}
于 2013-10-02T16:04:05.630 回答
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.
  }
});

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

于 2013-10-02T16:01:59.433 回答
1

我会用 jQuery AJAX 调用来投票。

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

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

于 2013-10-02T16:28:55.700 回答