web-dev-qa-db-fra.com

Actionresult vs JSONresult

J'ai 2 questions:

  1. Quelle est la différence entre JSONResult et ActionResult?

  2. Quand utiliser JSONResult dans MVC?

31
Sameer More

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.

34
SLaks

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.

13
Trevor Pilley

ActionResult est une classe abstraite .JsonResult est un sous-type de ActionResult. Nous pouvons donc renvoyer du contenu JSON dans les deux types.

3
Mahara jothi

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

0
Sirwan Afifi

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.

0
Andrew