Es un objeto dinámico, lo que significa que puede agregarle propiedades en el controlador y leerlas más tarde en la vista, porque esencialmente está creando el objeto como lo hace, una característica del tipo dinámico. Consulte este artículo de MSDN sobre dinámica. Consulte este artículo sobre su uso en relación con MVC.
Si desea usar esto para formularios web, agregue una propiedad dinámica a una clase de página base así:
public class BasePage : Page
{
public dynamic ViewBagProperty
{
get;
set;
}
}
Haz que todas tus páginas hereden de esto. Debería poder, en su marcado ASP.NET, hacer:
<%= ViewBagProperty.X %>
Eso debería funcionar. Si no es así, hay formas de solucionarlo.