Sie haben mehrere Möglichkeiten:
ViewBag und anzeigen Daten sind recht einfach zu benutzen, aber nicht immer bequem.
Es gibt ein großes Plus - Sie könnten sie an einer Stelle setzen/lesen und in einer anderen lesen - zum Beispiel könnten Sie sie in Ihrer Hauptansicht einstellen und sie in _lauout.cshtml
lesen/anzeigen.
View-Komponenten sind die interessanteste neue Feature in MVC Core (meiner Meinung nach), die Sie UI-Widgets erstellen können.
Es ist ein bisschen mehr Codierung für ViewComponent (Sie müssen Controller und Ansicht erstellen), aber es ist flexibel Funktion (ich mag es) und einfach an einem Ort zu nennen, wo Sie es brauchen, nur
@await Component.InvokeAsync("NameOfCOmponent")
.
Injections nicht mein Favorit, aber irgendwann usfull - zum Beispiel, wenn Sie Anzeige Benutzernamen möchten, können Sie den folgenden Code setzen Sie einfach direkt in Ihr Layout/View-Datei:
@using System.Security.Claims
@using Microsoft.AspNetCore.Identity
@inject UserManager<ApplicationUser> userManager
@{
var userInfo = ((await userManager?.GetUserAsync(User))?.xxx);
// where 'xxx' is any property of ApplicationUser model
}
Sie dann kann @userInfo
in derselben Ansicht verwenden, um diese Information anzuzeigen.
Weitere Informationen:
Mögliche Duplikat [Pass Daten-Layout, das für alle Seiten gemeinsam sind] (http://stackoverflow.com/questions/13225315/pass-data-to-layout-that-are-common-to-all-p Alter) – DavidG
Sie können einen ViewBag für den Seitentitel verwenden, ja. Sie können auch eine Modelleigenschaft erstellen und Ihre Layout.cshtml-Datei an dieses Ansichtsmodell binden. Sie können auch Sitzungsdaten verwenden. Sie haben viele Optionen hier – mituw16
ViewBag ist am einfachsten. Sie können aber auch eine [Child Action] verwenden (http://stackoverflow.com/questions/12530016/what-is-an-mvc-child-action). – Jasen