Ajax.NET Professional, ASP.NET MVC und jQuery – ein minimalistisches Beispiel

Michael Schwarz on Thursday, January 15, 2009

Weil ich gerade einen Test brauchte, habe ich das Projekt einfach mal hochgeladen. In dem Beispiel wird jQuery [1], ASP.NET MVC [2] und Ajax.NET Professional [3] verwendet. Einfach das VS2008 Projekt runterladen [4], entpacken und die Seite localhost:6341/Portal aufrufen. Dort befindet sich dann ein Link, der dann den AJAX Aufruf startet.

Und so sieht die AJAX Methode im PortalController.cs aus

public ActionResult Test()      
{       
  return new RenderJsonResult { Result = new {       
    status = "ok",       
    age = 31,  
    date = DateTime.Now       
    }
  };       
}

RenderJsonResult wandelt das übergebene Objekt automatisch in ein JSON Format um. Auf dem Client muss man nun den String, der zurückgeliefert wird mit der JavaScript Methode eval in ein Objekt umwandeln.

$.ajax({      
  url: "/Portal/Test",       
  success: function(s) {       
    eval("s=" + s);       
    alert("result: " + s.date);       
  },       
  error: function(xhr, status, e) { alert(status + "\r\n" + xhr.responseText); }       
});

Liefert man nichts zurück, also in der Test Methode z.B. return new EmptyResult(), dann zeigt Firefox in der Fehlerkonsole einen Fehler an, komisch. Ganz abgesehen davon sollte man wohl immer mindestens ein OK oder so zurückliefern.