FACTS:
- ViewBag is one among the cool features included in ASP.NET MVC 3 - Release Candidate 2 earlier announced by Scott Guthrie.
It is used to pass data from the Controller to Views same as you use ViewData[] dictionary.
- What is great and nice about ViewBag(aside from its name) is that its a dynamic type which means you can dynamically get/set values and add any number of additional fields without need of strongly-typed classes.
(reference:http://weblogs.asp.net/hajan/archive/2010/12/11/viewbag-dynamic-in-asp-net-mvc-3-rc-2.aspx)
In your example you dont have to cast the SelectList ViewBag since ViewBag is a dynamic type.
The SelectList part function of TypeID was already been done on your Controller part.
So calling the TypeID alone on your create will already trigger everything that is under to it.