ASP.NET AJAX无需更新面板

3

如何支持asp.net 2.0-3.5 ajax web应用程序的数据?最佳实践是什么? 我不想使用update panels,只需要纯文本数据(JSON)。 我应该使用web服务吗?还是有其他方法。

2个回答

7

嗯……使用一个 .aspx 页面?那处理程序是用来干什么的?

你只需要创建一个通用的基础处理程序,它将负责 JSON 的序列化和反序列化(例如使用 Json.net),然后为你的 AJAX 调用实现处理程序即可。

public abstract class JsonHandlerBase<TInput, TOutput> : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "application/json";
        TInput input = (TInput)context.Request; // Desesialize input
        TOutput output = ProcessRequest(context, parameter);

        string json = (string)output; // Serialize output
        context.Response.Write(json);
    }

    public abstract TOutput ProcessRequest(HttpContext context, TInput input);

    public bool IsReusable { get { return false; } }
}

这只是一个例子,您可以决定在基本处理程序中需要什么。


这是更好的方式来做。 - Sruly

1

您可以使用普通的aspx页面或处理程序并输出JSON。这可以通过擦除aspx中的所有Html,然后在代码中使用Response.Write()来完成。

然后对于前端JS,您可以使用JQuery或任何其他Ajax框架。

您还可以查看Asp.Net MVC。MVC具有JsonResult响应类型,并且与JQuery一起使用非常容易获得非常好的Ajax功能。


我尝试了MVC,它真的很棒。但是我在工作中被一些旧的asp.net代码困住了。没有机会使用.NET 3.0 - 因此MVC不是一个选择。 - ppiotrowicz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接