web-dev-qa-db-fra.com

Comment créer un contrôle réutilisable dans ASP.NET MVC

Comment puis-je/dois-je créer un "contrôle personnalisé" dans ASP.NET MVC 3? J'ai des points rouges sur les vues partielles, ViewUsersControl, Html.RenderAction, mais je ne sais toujours pas quel chemin correspond à MVC pour les vues rasoirs.

Si je dois rendre un composant ajax à la vue, je peux imaginer le faire en vue partielle, mais que se passe-t-il si je veux rendre une section avec une logique personnalisée?

8
Fanda

1) Vues partielles

2) Aides HTML personnalisées

3) Actions d'enfants

Mettre à jour le noyau ASP.NET:

2) Tag Helpers sont un moyen privilégié par rapport aux helpers HTML personnalisés

3) Les composants de vue sont utilisés à la place des actions enfants

21
syned

Vous pouvez utiliser

@{Html.RenderPartial("YourCustomView",YourModel);}

Par exemple, dans votre dossier Shared, créez une nouvelle View et nommez-la "_MyCustomControl"

Ensuite, dans le code, écrivez:

@model YourNameSpace.Models.YourModel

@{
    Layout = null;
}

@*Here write your control's markup*@

Ensuite, dans vos vues où vous souhaitez utiliser ce "control", vous ajoutez:

@{Html.RenderPartial("_MyCustomControl",new YourModel { args });}

Si vous avez des problèmes avec RenderPartialvérifiez ceci

En plus de toutes les autres réponses à ce message, je peux vous proposer l’utilisation des modèles EditorFor et DisplayFor. Celles-ci sont utiles lorsque vous souhaitez facilement rendre ou modifier un type personnalisé. Cela gérera bien la validation (ce qui peut devenir bizarre lorsque vous utilisez des partiels) et vous pouvez les imbriquer de manière récursive (encore une autre fonctionnalité qui n'est évidemment pas pratique avant d'en avoir besoin).

Vous pouvez également utiliser Html.RenderAction() ou Html.Action() pour appeler une autre action du contrôleur dans une vue et afficher les résultats en ligne dans la page. C’est probablement ce qui se rapproche le plus de ce dont vous avez besoin, car il vous permet de restituer un code partiel et d’inclure du code dans le contrôleur, ainsi que de permettre le passage de paramètres.

Liens vers:

Modèles DisplayFor et EditorFor

Action et RenderAction

Comme vous l'avez mentionné, vous pouvez utiliser des vues partielles. Oui, vous pouvez utiliser des vues partielles, qui constituent le moyen le plus efficace et le plus efficient.

Pour le rendu Ajax, vous pouvez toujours utiliser

     @using (Ajax.BeginForm("Details", new { id = Model.Post.PostId }, new AjaxOptions    
  {

Peu de liens que vous voudriez voir

Rendu de la vue partielle dans ASP.Net MVC3 Razor avec Ajax

Rendre des vues partielles à l'aide de JQuery dans MVC3

0
Nipun Ambastha