Ich begann ASP.NET zu lernen und ich bin immer noch nicht vollständig vertraut mit ihm. Ich muss Account Controller-Daten an meine Home-Index-Ansicht übergeben. Ich manipuliere die Standardauthentifizierung. Ich habe mithilfe der Migration eine neue Spalte (Gender) in die Tabelle ASPNETUSERS eingefügt. Ich brauche die aktuellen Login-Benutzerdetails und zeige sie in meine Index
Ansicht von HomeController
.ASP.NET MVC Controller zum Anzeigen von Daten
Ich habe bereits gefiltert, indem Sie den folgenden Code innerhalb AccountController
verwenden.
var currentUserId = User.Identity.GetUserId();
var x = UserManager.FindById(currentUserId);
ViewBag.Gender = x.Gender;
Ich denke, dieser Code kann bestimmte Spalte für die Anmeldung Benutzer-ID gefiltert werden. Denke ich falsch über diese? Wenn ich falsch liege, bitte erkläre es.
Das Hauptproblem, dem ich gerade gegenüberstehe, besteht darin, diese @ViewBag.Gender
zu Index
Sicht zu übergeben. Ist es möglich, @ViewBag.Gender
in der Index
Ansicht von HomeController
zu verwenden? Mein Verständnis ist die ViewBag
muss innerhalb der HomeController
definiert werden, um Index
Ansicht Seite HomeController
zu passieren.
Wie kann ich AccountController
Daten an Index
Blick auf HomeController
übergeben? Ich beziehe mich nicht auf die Verwendung ViewBag
. Solange es den Wert übertrifft, bin ich damit zufrieden. Und bitte geben Sie mir einige Vorschläge, dies perfekt zu tun.
Nein, Sie können mit 'ViewBag' keine Daten von einem Controller zu einem anderen übertragen (obwohl Sie' TempData' verwenden könnten.) Verwenden Sie einfach das Code-Snippet oben in der 'Index()' Methode von 'HomeController'. –
Vielleicht Sie müssen die Daten in db oder Cache persistieren – Nico
'ViewBag' verwendet, um Controller-Daten in Sicht zu übergeben.Sie können' TempData' oder 'Session' verwenden, um zwischen Controllern zu wechseln.Auch' @ ViewBag.Gender' sollte in 'HomeController verwendet werden .Index() 'Methode. –