如何使用带有Web窗体的JSON服务AJAX调用?

Pro*_*ofK 6 asp.net ajax json asp.net-ajax

我知道MVC控制器非常擅长提供JSON格式的AJAX请求,但是我是否可以使用任何内置的ASP.NET功能来从普通的旧Web表单站点进行这些类型的调用?

Vla*_*adV 14

您可以使用内置的ASP.NET AJAX.

选项1 - 使用Web服务(如果您希望功能可重用):

  • 使用[ScriptService]属性创建Web服务(.asmx),
  • 将a添加到您的页面并将Web服务添加到其Services集合中,
  • 在yor页面中使用ScriptManager生成的JavaScript代理.

选项2 - 使用页面方法(如果您希望在单个页面上创建功能而不创建Web服务):

  • 在页面中定义静态方法,为它们添加[WebMethod]属性,
  • 使用EnablePageMethods ="true"添加ScriptManager,
  • 使用PageMethods对象从JavaScript调用这些方法.

在任何一种情况下,JSON都将用于数据传输.

这是一个包含一些代码示例的广泛教程.

但是,ASP.NET AJAX经常被指责为效率低下 - 例如,它生成的JS往往相当大.所以,如果你关心性能,你需要彻底测试它.

你可能也看看这个线程:.NET AJAX调用ASMX或ASPX或ASHX?