MVC Html.Partial ou Html.Action

Je suis nouveau sur asp.net MVC alors s’il vous plaît supportez-moi. J’ai besoin de créer un menu qui répète plusieurs vues. Ce qui servirait mieux le but Html.Action OU Html.Partial .

    Voici ce que je considère mes lignes direcsortingces sur l’utilisation de HTML.Action ou Html.Partial

    Html.Partial

    1. Utilisez Html.Partial lorsque vous restituez du contenu statique ou,
    2. Si vous voulez transmettre des données du ViewModel en cours d’envoi à la vue principale

    HTML.Action

    1. Utilisez Html.Action lorsque vous devez extraire des données supplémentaires du serveur pour remplir la vue partielle

    Fondamentalement, si est statique, utilisez Html.Partial() . Si dynamic, modéliser des données indépendantes, utilisez Html.Action() . Il y a probablement plus de scénarios, mais cela vous donnera une bonne idée de où et comment aller. Html.RenderPartial() et Html.RenderAction() sont interchangeables pour les fonctions nommées ci-dessus.

    Html.Partial: rend une vue partielle sans toucher d’abord une action du contrôleur. Voir: Vues partielles

    Html.Action Appelez une action de contrôleur , qui peut renvoyer une vue / vue partielle (ou non, elle pourrait lancer un HttpNotFound ou retourner Json, etc.).

    Votre menu nécessite-t-il un modèle de vue ou est-il statique?

    S’il s’agit d’un menu statique, Html.Partial répondra à vos besoins. Placez le contenu du menu statique dans la vue partielle et appelez Html.Partial où vous souhaitez le rendre.

    Si le menu est généré à partir d’un modèle de vue, vous pouvez utiliser Html.Partial ou Html.Action :

    Enchaînement du modèle de vue en utilisant Html.Partial :

     public class MenuViewModel { // menu data goes here } public class GeneralViewModel : MenuViewModel { // general view info goes here } public ActionResult Index() { return View(new GeneralViewModel()); } // View Code @model GeneralViewModel 
    @Html.Partial("_partialName", model)

    Ici, nous passons un modèle de vue complet à la vue et la vue appelle Partial et transmet son modèle à la vue partielle.

    ** Séparer le modèle en utilisant Html.Action: **

     public ActionResult Index() { return View(new GeneralViewModel()); } public ActionResult MenuView() { return PartialView(new MenuViewModel()); } // View Code @model GeneralViewModel 
    @Html.Action("MenuView")

    Ici, la vue appelle l’action du contrôleur MenuView qui crée un nouveau modèle de vue et le transmet au partiel.