3 votes

Quelle place pour les contrôles serveur dans ASP.Net MVC ?

Quel est le remplacement recommandé des contrôles de serveur ASP.Net dans le nouveau monde de ASP.Net MVC ?

À mon avis, l'une des meilleures caractéristiques d'ASP.Net est la possibilité d'écrire des contrôles de serveur (même si, il faut l'admettre, le modèle d'événement est horrible à gérer). Si ces contrôles sont auto-peuplés, ils peuvent être partagés entre différents projets avec un minimum d'agitation - il suffit de référencer l'assemblage où se trouve le contrôle serveur et de le déposer dans l'aspx. Le contrôle fait le reste. Cela s'intègre très bien dans le monde des widgets et permet une réutilisation efficace du code. Comment peut-on réaliser la même chose en MVC ?

Je suis surtout intéressé par les contrôles qui se remplissent eux-mêmes et qui ne renvoient pas d'information, car je comprends que le modèle postback ne correspond pas du tout à MVC. Peuvent-ils encore être encapsulés dans une classe qui peut être partagée entre un certain nombre de projets web MVC différents ? Ou cela nécessite-t-il un état d'esprit totalement différent où les contrôles ne devrait pas se remplissent d'elles-mêmes et qu'il faut utiliser des vues partielles ? Existe-t-il un moyen de partager les vues partielles entre les projets ?

Enfin, puis-je utiliser mes anciens contrôles de serveur (non postback) dans un projet MVC ?

3voto

Runscope API Tools Points 43859

Vous pouvez imiter le comportement des contrôles non post back avec les méthodes d'extension Html helper. Tout comme Html.TextBox(), etc, vous pouvez écrire les vôtres et les encapsuler dans leur propre projet si vous le souhaitez.

Si vous avez écrit des contrôles qui ne produisent que du HTML, il ne devrait pas être difficile de les convertir en aides Html.

1voto

AaronSieb Points 4598

Ce qui se rapproche le plus des contrôles de serveur dans Asp.Net MVC, ce sont les requêtes partielles. Dans une requête partielle, une méthode d'action MVC est appelée et son résultat est ajouté à la vue actuelle. Malheureusement, le support officiel de cette méthode (Html.RenderAction) se trouve actuellement dans l'assembly futures.

Si vous n'avez pas la possibilité d'utiliser l'assemblage des contrats à terme, un blogueur nommé Steve Sanderson a écrit un article sur la mise en œuvre d'une fonctionnalité similaire :
http://blog.codeville.net/2008/10/14/partial-requests-in-aspnet-mvc/

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