2009-09-29 4 views
14

Existe-t-il une liste de tous les résultats d'action ASP.Net MVC et de leurs utilisations?Quels sont tous les résultats des actions ASP.Net MVC?

J'ai utilisé activement ActionResult pour presque tout, mais je sais que ce n'est pas correct et que je devrais utiliser des résultats d'actions plus spécifiques. Je l'ai googlé mais je ne trouve pas de liste. Nous venons d'acheter le livre Wrox, mais il ne reste plus qu'une semaine avant la livraison et j'aimerais bien le lire avant.

Pouvez-vous également rouler les vôtres et est-ce que cela est documenté quelque part?

Répondre

22

Si vous ouvrez System.Web.Mvc en utilisant Reflector, vous verrez qu'il existe plusieurs types dérivés qui héritent de la classe abstraite ActionResult. Ils sont:

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 

Oui, vous pouvez obtenir le vôtre en héritant de la classe abstraite ActionResult. Vous pouvez étudier un ou plusieurs des ActionResults dans la liste ci-dessus avec Reflector pour avoir une idée de la façon dont cela serait fait.

Le code source est également disponible ici:

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

+0

Excellent. Merci Robert. – griegs

+6

Dans le cas d'ASP.NET MVC, la source est disponible. Il peut être plus pratique d'utiliser un réflecteur, mais il y a une valeur supplémentaire (commentaires, etc.) dans la source. –

+4

Merci Marc. Jetez un coup d'oeil dans cela aussi bien. En même temps j'ai réussi à créer mon propre ActionResult qui a renvoyé le mot "Slappy". C'était amusant. :) Merci à tous. – griegs

0

Si vous cherchez ce pour ASP.NET MVC 5, ajouter HttpStatusCodeResult à la liste.

De même, il est utile de mentionner que les méthodes d'aide qui renvoient le résultat de l'action correspondante n'ont pas le mot "Résultat" à la fin. Par exemple pour renvoyer un HttpNotFoundResult, vous allez écrire return HttpNotFound ("status description");.

ActionResult Class page on MSDN a la liste complète des classes de résultats et les méthodes auxiliaires.

Questions connexes