Quelle est la différence entre et
dans ASP.NET MVC ?
Réponses
Trop de publicités?ActionResult est une classe abstraite qui peut avoir plusieurs sous-types.
ActionResult Sous-Types
ViewResult - Rend un spécifiés vue du flux de la réponse
PartialViewResult - Rend un spécifiés partie du flux de la réponse
EmptyResult - Une réponse vide est retournée
RedirectResult - Effectue une redirection HTTP vers une URL spécifiée
RedirectToRouteResult - Effectue une redirection HTTP vers une URL qui est déterminée par le le moteur de routage basé sur les données de la route
JsonResult - Sérialise un ViewData objet au format JSON
JavaScriptResult - Retourne un morceau de code JavaScript qui peut être exécuté sur le client
ContentResult - Écrit le contenu dans le flux de réponse, sans exiger de vue
FileContentResult - Retourne un fichier pour le client
FileStreamResult - Retourne un fichier pour le client, qui est fourni par un Ruisseau
FilePathResult - Retourne un fichier pour le client
Ressources
C’est pour la même raison que vous n’écrivez pas toutes les méthodes de chaque classe pour retourner « objet ». Soyez aussi précis que possible. Ceci est particulièrement utile si vous avez l’intention d’écrire des tests unitaires. Aucuns plus stable ne retournent des types et/ou coulée le résultat.
ViewResult est une sous-classe de ActionResult. La méthode View retourne un ViewResult. Si vraiment ces extraits de deux code font exactement la même chose. La seule différence est qu’avec la ActionResult un, votre contrôleur n’est pas prometteur pour retourner une vue - vous pouvez changer le corps de la méthode pour retourner sous certaines conditions un RedirectResult ou autre chose sans modifier la définition de méthode.
Alors que d'autres réponses ont noté les différences correctement, notez que si vous êtes en fait en retour d'un ViewResult seulement, c'est mieux pour revenir le plus spécifique plutôt que sur la base de ActionResult type. Une exception à ce principe, c'est quand votre méthode retourne plusieurs types dérivés de ActionResult.
Pour une discussion complète sur les raisons de ce principe veuillez voir la discussion à ce sujet ici: Doit ASP.NET MVC Méthodes de Contrôleur de Retour ActionResult?