Це динамічний об'єкт, тобто ви можете додати до нього властивості в контролері та прочитати їх згодом у представленні, тому що ви, по суті, створюєте об'єкт як і ви, особливість динамічного типу. Дивіться цю статтю MSDN про динаміку. Дивіться цю статтю про його використання стосовно MVC.
Якщо ви хочете використати це для веб-форм, додайте динамічну властивість до базового класу сторінки таким чином:
public class BasePage : Page
{
public dynamic ViewBagProperty
{
get;
set;
}
}
Нехай усі ваші сторінки успадковуються від цього. Ви повинні мати змогу у своїй розмітці ASP.NET робити:
<%= ViewBagProperty.X %>
Це має спрацювати. Якщо ні, то є способи обійти це.