MVC 4: Créer un contrôleur de point de vue commun sur _Layout.cshtml
Comment voulez-vous accomplir cela?
Ce point de Vue est automatiquement généré.
Quand j'manuel d'ajouter une Vue, par exemple: vue d'un Contact avec l'Index.cshtml fichier.
Je peux modifier ce point de vue par la rédaction d'un contrôleur de Contact.
public class ContactController : Controller
{
public ActionResult Index()
{
@ViewBag.Test = "this text will be used in my Contact View";
return View();
}
}
Donc, à mon contact, je peux faire comme ceci
<p> @Viewbag.Test </p>
Et le texte sera affiché.
Mais comment voulez-vous atteindre ce pour mon _Layout.cshtml fichier dans ma vision Partagée?
J'ai essayé la même chose en ajoutant un SharedController, mais ne fonctionne pas de cette façon
OriginalL'auteur user1949147 | 2013-01-04
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas avoir un contrôleur pour _Layout.cshtml. Ce fichier est utilisé pour toutes les vues de mise en page. Par exemple, regardez le _ViewStart.cshtml fichier dans votre dossier Vues:
Cela dit, fondamentalement, tous les contrôleurs à utiliser cette mise en page comme un wrapper autour de la vue retournée par vos actions de contrôleur.
Votre _Layout.cshtml fichier a déjà un indice sur une façon de le remplir avec des valeurs:
Si vous effectuez les opérations suivantes dans une vue, il sera affiché dans l'en-tête/titre de section de l'_Layout.cshtml fichier:
ViewBag
de la_Layout.cshtml
fichierOriginalL'auteur danludwig
Vous n'avez pas besoin d'un contrôleur pour _Layout. Votre contact est ajouté à _Layout pour créer une vue complète. Ainsi, vous pouvez utiliser l'un de vos ViewBag propriétés à partir de votre contrôleur de contact à l'intérieur de _Layout. _Layout a accès aux mêmes variables que votre contact.
Plus précisément, dans votre exemple:
ViewBag.Le Test sera également accessible dans _Layout de la même façon, il est dans votre vue d'un contact.
OriginalL'auteur wired_in