2009-03-07 12 views
3

Was ist die beste Praxis, um Daten für asp.net 2.0-3.5 Ajax Web-Anwendung zu unterstützen? Ich möchte keine Update-Panels, nur Textdaten (JSON) verwenden. Soll ich Webdienste verwenden? Oder gibt es einen anderen Weg.ASP.NET AJAX ohne Update-Panel

Antwort

7

Errrr ... Verwenden Sie eine ASPX-Seite? Was sind Handler für?

Sie müssen nur einen generischen Basis-Handler erstellen, der sich um die json (de) -Serialisierung kümmert (z. B. mit Json.net) und dann Handler für Ihre Ajax-Aufrufe implementiert.

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; } } 
} 

Dies ist nur ein Beispiel, es liegt an Ihnen zu entscheiden, möchten Sie in Ihrer Basis-Handler benötigen.

+0

Dies ist der bessere Weg, es zu tun. – Sruly

+0

Süß! Vielen Dank :) – ppiotrowicz

1

Sie können einfache aspx Seiten oder Handler verwenden und nur JSON ausgeben. Sie tun dies, indem Sie das gesamte HTML im Aspx löschen und dann Response.Write() im Code verwenden.

Dann für das Frontend JS können Sie JQuery oder jedes andere Ajax-Framework verwenden.

Sie können auch Asp.Net MVC auschecken. MVC hat einen JsonResult-Response-Typ und ist sehr einfach zusammen mit JQuery zu verwenden, um eine sehr gute Ajax-Funktionalität zu erhalten.

+0

Ich versuchte MVC und es ist wirklich großartig. Aber ich bin mit einigen älteren asp.net Code in Arbeit stecken. Keine Chance für .net 3.0 - MVC ist also keine Option. – ppiotrowicz

Verwandte Themen