J'ai 2 questions:
Quelle est la différence entre JSONResult et ActionResult?
Quand utiliser JSONResult dans MVC?
ActionResult
est une classe abstraite qu'une action peut renvoyer.
Les méthodes d'assistance dans Controller
(par exemple, Json()
, Content()
, View()
, ...) renvoient différentes classes concrètes héritant de ActionResult
, notamment JsonResult
.
Vous devez déclarer vos méthodes d'action comme retournant ActionResult
, afin qu'elles aient la liberté de renvoyer toute classe de résultats concrète.
Utilisez JsonResult
lorsque vous souhaitez renvoyer des données JSON brutes devant être utilisées par un client (javascript sur une page Web ou un client mobile).
Utilisez ActionResult
si vous souhaitez renvoyer une vue, rediriger, etc., afin qu’il soit géré par un navigateur.
ActionResult
est une classe abstraite .JsonResult
est un sous-type de ActionResult
. Nous pouvons donc renvoyer du contenu JSON dans les deux types.
JsonResult
Celui-ci est un peu plus complexe, mais pas encore très. Cela a aussi codé en dur son ContentType, mais ce qui le rend un peu plus complexe est qu'il utilise un JavaScriptSerializer codé en dur pour sérialiser le fichier JSON données avant de l'écrire directement dans la réponse.
ce post peut être utile
http://brendan.enrick.com/post/types-of-aspnet-mvc-3-action-results.aspx
Selon la documentation MSDN pour la ActionResult
:
La classe ActionResult Encapsule le résultat d'une méthode d'action et est utilisé pour effectuer une opération de niveau cadre pour le compte de l'action méthode.
Une méthode d'action répond aux entrées de l'utilisateur en effectuant un travail et renvoyer un résultat d'action. Un résultat d'action représente une commande qui le cadre fonctionnera pour le compte de la méthode d'action. Le La classe ActionResult est la classe de base pour les résultats d'action.
Et pour JsonResult :
Représente une classe utilisée pour envoyer du contenu au format JSON au fichier réponse.