2009-09-29 9 views
14

Gibt es eine Liste aller ASP.Net MVC Aktionsergebnisse und deren Verwendung?Was sind die Ergebnisse der ASP.Net MVC-Aktion?

Ich habe eifrig seit fast alles mit Action aber ich weiß, dass nicht richtig ist und dass ich bestimmte Aktion Ergebnisse mit mehr werden soll.

Ich habe dies gegoogled aber kann keine Liste finden. Wir haben gerade das Wrox-Buch gekauft, aber es ist mehr als eine Woche von der Lieferung entfernt, und ich möchte darüber schon lange nachlesen.

Können Sie auch Ihre eigenen rollen und ist das irgendwo dokumentiert?

Antwort

22

Wenn Sie System.Web.Mvc mit Reflector öffnen, werden Sie feststellen, dass es mehrere abgeleitete Typen gibt, die von der abstrakten Klasse ActionResult erben. Sie sind:

System.Web.Mvc.ContentResult 
System.Web.Mvc.EmptyResult 
System.Web.Mvc.FileResult 
    System.Web.Mvc.FileContentResult 
    System.Web.Mvc.FilePathResult 
    System.Web.Mvc.FileStreamResult 
System.Web.Mvc.HttpUnauthorizedResult 
System.Web.Mvc.JavaScriptResult 
System.Web.Mvc.JsonResult 
System.Web.Mvc.RedirectResult 
System.Web.Mvc.RedirectToRouteResult 
System.Web.Mvc.ViewResultBase 
    System.Web.Mvc.PartialViewResult 
    System.Web.Mvc.ViewResult 

Ja, Sie können Ihre eigenen rollen, indem Sie von der abstrakten Klasse ActionResult erben. Sie können eines oder mehrere der ActionResults in der obigen Liste mit Reflector studieren, um ein Gefühl dafür zu bekommen, wie dies geschehen würde.

Der Quellcode ist auch hier zur Verfügung:

http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471

+0

Ausgezeichnet. Danke Robert. – griegs

+6

Im Fall von ASP.NET MVC ist die Quelle verfügbar. Es ist vielleicht einfacher * Reflektor zu verwenden, aber es gibt einen zusätzlichen Wert (Kommentare usw.) in der Quelle. –

+4

Danke Marc. Darf ich mir das auch ansehen. In der Zwischenzeit habe ich mein eigenes ActionResult erstellt, das das Wort "Slappy" zurück gab. Das hat Spaß gemacht. :) Dank an alle. – griegs

0

Wenn Sie dies für ASP.NET MVC up gesuchte 5, fügen Sie HttpStatusCodeResult auf der Liste.

Es ist auch erwähnenswert, dass die Hilfsmethoden, die das entsprechende Aktionsergebnis zurückgeben, am Ende nicht das Wort "Ergebnis" haben. Um zum Beispiel ein HttpNotFoundResult zurückzugeben, schreiben Sie return HttpNotFound ("status description");.

ActionResult Class page on MSDN hat die vollständige Liste der Ergebnisklassen und der Hilfsmethoden.

Verwandte Themen