ViewBag
ist ein dynamisches Objekt, so dass Sie beliebige Eigenschaften definieren können. In diesem Fall wird @ViewBag.Title
eine Zeichenfolge zugewiesen. In der _Layout.cshtml
Seite finden Sie diese Codezeile sehen:
<title>@ViewBag.Title</title>
Jede Ansicht, die die _Layout.cshtml
als Layout eine einzige Zeile Code ähnlich wie unten wird verwendet:
@{
// This is setting the property to Hahaha
ViewBag.Title = "Hahaha";
}
Wenn du das getan hast , das ist schließlich, was Sie zeigt den Titel der Seite im Browser erreichen (den roten Kreis sehen):
In einem Ihren Kommentaren, die Sie fragen:
tut, was ich will, bedeuten auch ein komplexes Objekt in sie zu setzen? Ich weiß, dass dies geschieht, indem man Objekte an das Modell weitergibt, aber ist das machbar?
Mit anderen Worten fragen Sie, ob Sie ein komplexes Objekt in Title
Eigenschaft setzen können? Ja, Sie können dies tun, aber denken Sie daran, den Code in der _Layout.cshtml
Datei zu ändern, andernfalls wird einfach ToString()
auf Ihrem komplexen Objekt aufgerufen und das Ergebnis im Browser-Titel gedruckt. Aber warum würdest du das tun? Ich schlage es nicht vor. Aber ja, du kannst etwas hineinlegen, weil es dynamisch ist, aber dann musst du es richtig benutzen.Sie können auch andere Eigenschaften wie folgt erstellen:
ViewBag.SomeOtherProperty = new MyClass() {...};
jedoch ein Modell vorbei ist viel besser, weil es Ihnen Unterstützung Compiler gibt, und Sie werden auch Intellisence bekommen.
Dies ist eine reguläre dynamische Eigenschaft in 'ViewBag', die Ihr Layout möglicherweise verwendet. – SLaks