Routing -Is used to simplify MVC URLs. Mapping User-friendly URLs to action names in the controller.Default be the last statement bcoz else it bypasses the other urls from the route which you defined.It is a collection and has unique names or key in the collection.
ViewBag:- Is similar kind of dynamic variable in c#. Dynamic internally uses reflection and at runtime, it finds out what the data or property.By using viewbag on that you can define dynamic property and it creates a dynamic property on the fly also they cannot provide compile error.