net mvc how existe contexto asp actual c# asp.net-mvc razor viewbag

c# - mvc - En un simple Viewbag.Title, obteniendo una RuntimeBinderException



viewbag razor (3)

Podría ser que está usando @ ViewBag.Title antes de declararlo, por ejemplo, si su archivo de diseño tiene

<title>@ViewBag.Title</title>

pero usted define el título MÁS TARDE en una vista parcial o similar

@{ ViewBag.Title = "My Title"; ViewBag.MiniTitle = "Sub - Title"; }

intente configurar ViewBag.Title en la acción del controlador, para que esté disponible antes de llamar a View ()

Tengo un ViewBag.Title realmente simple. Me gusta esto:

@{ ViewBag.Title = "My Title"; ViewBag.MiniTitle = "Sub - Title"; }

Que se está analizando en _Layout.cshtml, en

<title>@ViewBag.Title</title>

Sin embargo, estoy recibiendo esta excepción:

Thrown: "''System.Dynamic.DynamicObject'' does not contain a definition for ''Title''" (Microsoft.CSharp.RuntimeBinder.RuntimeBinderException) Exception Message = "''System.Dynamic.DynamicObject'' does not contain a definition for ''Title''", Exception Type = "Microsoft.CSharp.RuntimeBinder.RuntimeBinderException"

He estado buscando y no pude encontrar mucha información al respecto. Básicamente es el mismo problema al que se enfrentaba este tipo: http://forums.asp.net/t/1715878.aspx?MVC3+Razor+Viewbag+Title+RuntimeBinderException

Mi problema es también el último que publicó. Esto no causa ningún problema para mí, los proyectos funcionan bien y también lo hacen mis títulos. Sin embargo, no me gusta el hecho de que se está lanzando una excepción debido a que son caros.

¿Alguien sabe cómo puedo solucionar este problema? ¡Gracias!


Traté de regenerar dicho problema sin suerte.

Ha configurado ViewBag.Title en la página maestra y este error parece estar ocurriendo desde otra vista donde no está definiendo la propiedad ViewBage.Title.

Dado que ViewBag.Title es una variable local de la página Master, otra vista no lo obtendrá y arrojará dicho error.

Ahora, intente usar ViewBag.MiniTitle en la etiqueta. ¿Sigues teniendo el mismo error?

Por favor comparte.


Intenté esto y funciona para mí:

@(ViewBag.GetType().GetProperty("Title") == null ? "" : ViewBag.Title)

es una vieja pregunta, pero tal vez ayuda a alguien.

Saludos.