ViewBag
è un oggetto dinamico in modo che sia possibile definire qualsiasi proprietà su di esso. In questo caso @ViewBag.Title
viene assegnata una stringa. Nella pagina _Layout.cshtml
si vedrà questa riga di codice:
<title>@ViewBag.Title</title>
Qualsiasi vista, che sta utilizzando il _Layout.cshtml
come il layout avrà una riga di codice simile al di sotto:
@{
// This is setting the property to Hahaha
ViewBag.Title = "Hahaha";
}
Se avete fatto che , questo è alla fine quello che si compirà (vedi cerchio rosso) che mostra il titolo della pagina nel browser:

In uno dei vostri commenti vi chiedo:
fa quello che voglio dire anche mettere un oggetto complesso in esso? So che questo dovrebbe essere fatto passando l'oggetto al modello, ma è fattibile?
In altre parole, si sta chiedendo se è possibile inserire un oggetto complesso nella proprietà Title
? Sì, puoi farlo, ma tieni presente di modificare il codice nel file _Layout.cshtml
, altrimenti chiamerà semplicemente ToString()
sul tuo oggetto complesso e stamperà il risultato nel titolo del browser. Ma perché lo faresti? Io non lo suggerisco. Ma sì, puoi inserire qualcosa perché è dinamico, ma devi usarlo correttamente.È anche possibile creare altre proprietà come questa:
ViewBag.SomeOtherProperty = new MyClass() {...};
Tuttavia, il superamento di un modello è molto meglio perché ti dà compilatore supporto e si riceverà anche Intellisence.
È una proprietà dinamica normale in 'ViewBag', che può essere utilizzata dal layout. – SLaks