我知道MVC控制器非常擅长提供JSON格式的AJAX请求,但是我是否可以使用内置的ASP.NET功能从普通的旧Web表单站点进行这些类型的调用?
答案 0 :(得分:14)
您可以使用内置的ASP.NET AJAX。
选项1 - 使用Web服务(如果您希望功能可重用):
选项2 - 使用页面方法(如果您希望单页上的功能而不创建Web服务):
在任何一种情况下,JSON都将用于数据传输。
这是一个包含一些代码示例的广泛tutorial。
然而,ASP.NET AJAX经常被指责为效率低下 - 例如,它生成的JS往往相当大。所以,如果你关心性能,你需要彻底测试它。
您可能还会看一下这个主题:.NET AJAX Calls to ASMX or ASPX or ASHX?
答案 1 :(得分:2)
使用通用网络处理程序。即 ashx 。这些甚至比 MVC 操作更快。
答案 2 :(得分:2)
Web API适用于Web窗体。 http://www.asp.net/web-api/overview/creating-web-apis/using-web-api-with-aspnet-web-forms
答案 3 :(得分:0)
如果您在服务器上安装了.NET 3.5,则可以利用框架附带的JSON serialization tools。
答案 4 :(得分:0)
此方案中我首选的方法是使用通用Web处理程序(.ashx)和JSON.net http://james.newtonking.com/json
它简单,快速,轻便。
一个简单的例子是:
public void ProcessRequest(HttpContext context)
{
string jsonOutput = string.Empty;
context.Response.ContentType = "application/json";
using (var db = new MyDBContext())
{
var dbResult = db.myobject.select();
jsonOutput = Newtonsoft.Json.JsonConvert.SerializeObject(dbResult);
}
context.Response.Write(jsonOutput);
}