62 votes

Rendre une vue partielle à partir d'un autre contrôleur

Existe-t-il un moyen de rendre dans ma vue du contrôleur A une vue partielle depuis un autre contrôleur B ?

Edit: J'ai écrit une vue partielle qui convient à deux contrôleurs uniquement et je ne veux pas la copier dans leur dossier Views.
Je souhaite que la vue partielle soit affichée chaque fois que la vue est rendue, et non après un événement.

77voto

tvanfosson Points 268301
  1. Vous pouvez partager des points de vue entre les contrôleurs en les mettant dans les points de Vue/dossier Partagé. Chaque contrôleur peut alors rendre la vue par nom.
  2. Vous pouvez effectuer le rendu d'une vue partielle (qui peut être partagé entre les contrôleurs comme dans (1)) dans le courant de l'affichage à l'aide de Html.Partial().
  3. Vous pouvez utiliser Html.Action() d'invoquer une action sur un autre contrôleur et de rendre les résultats dans la vue active.
  4. Vous pouvez utiliser AJAX pour charger une vue partielle à partir d'un autre contrôleur après que la page a été rendue.

44voto

Pittfall Points 710
@Html.Partial("~/Views/ControllerB/Index.cshtml")

17voto

Steve Points 1599

Oui,

 return PartialView("/path/view.cshtml");
 

Vous avez juste besoin de travailler sur la partie chemin.

Sinon, vous pouvez mettre la vue partielle en vues / shared puis simplement retourner:

 return PartialView("view.cshtml");
 

2voto

Hari Gillala Points 2548
        @model YourModelNamesapce.ModelName
    @{
        ViewBag.Title = "Edit";
        Layout = "~/Views/Shared/_LayoutForPartialViews.cshtml";
    }
     <table>
                <tr>
                    <td>
                        @Html.LabelFor(model => model.fieldname)
                    </td>
                    <td>
                        @Html.DisplayFor(model => model.fieldname)
                    </td>
                </tr>
<tr>
       <td>  @Html.Action("PartialViewAction", "Controller", new { id = Model.id })</td>
</tr>
    </table>

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