391 votes

Différence entre ApiController et Controller dans ASP.NET MVC

Je me suis amusé avec ASP.NET MVC 4 beta et je vois maintenant deux types de contrôleurs : ApiController y Controller .

Je ne comprends pas très bien dans quelles situations je peux choisir un contrôleur particulier.

Par exemple : si je veux retourner une vue, je dois utiliser ApiController ou l'ordinaire Controller ? Je suis conscient que l'API Web WCF est désormais intégrée à MVC.

Puisque maintenant nous pouvons utiliser les deux contrôleurs, quelqu'un peut-il indiquer dans quelles situations il faut choisir le contrôleur correspondant ?

31 votes

Important : ASPNET Core a 'fusionné'. ApiController y Controller donc si vous utilisez la nouvelle version de .NET, vous n'avez plus besoin de vous soucier d'ApiController. learn.microsoft.com/fr/aspnet/core/tutorials/first-web-api

4 votes

Je suis content qu'ils l'aient fait ! Je l'avais prédit depuis longtemps d'ailleurs prideparrot.com/blog/archive/2012/10/asp_net_mvc_vs_webapi

2 votes

" Mark et Ted sont de grands amis. Ils remplissent généralement leur table à dîner de discussions intéressantes surtout techniques ! " Personne ne s'attend à une bande dessinée très technique. ;^)

1voto

Shailesh Uke Points 47

Chaque méthode de l'API Web renvoie des données (JSON) sans sérialisation.

Cependant, afin de renvoyer des données JSON dans les contrôleurs MVC, nous allons définir le type de résultat d'action renvoyé comme JsonResult et appeler la méthode Json sur notre objet pour s'assurer qu'il est emballé en JSON.

1voto

Anjyr Points 1433

La principale différence est : L'API Web est un service pour n'importe quel client, n'importe quel appareil, et le contrôleur MVC ne sert que son client. C'est la même chose parce qu'il s'agit d'une plateforme MVC.

0voto

Rajesh Kumar Points 43

enter image description here

Si vous créez une nouvelle application web dans le dernier framework 4.7.2, les deux seront configurés par défaut et vous pourrez construire votre application sur cette base.

enter image description here

-3voto

Dans Asp.net Core 3+ Vesrion

Contrôleur : Si vous voulez renvoyer quelque chose en rapport avec IActionResult et Data également, optez pour Controller. contrôleur

ApiController : Utilisé comme attribut/notation dans le contrôleur API. Qui hérite de la classe ControllerBase

ControllerBase : Si vous voulez renvoyer uniquement des données, choisissez la classe ControllerBase.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X