是否有推荐的方法在WebForms应用程序中进行AJAX调用?
我知道有内置的ASP.NET AJAX组件,但它们看起来有点沉重。我习惯在MVC中这样做,看起来很干净。
我可以使用页面方法,但它们要求我的方法是静态的,这使得访问我的数据库等更加困难。
我假设我也可以使用jQuery来进行调用,尽管过去的尝试失败了,通常是由于数据返回方式的问题(JSON等)。
我的目标是传递一个字符串片段并获取与该片段匹配的项目列表。速度会很好。我能得到一些建议吗?
答案 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服务中。