Hopefully the above post helps provide some more details
about how Controllers pass data to a View in order to render a response to a
client. You can use either a late-bound dictionary, or a strongly-typed
approach to accomplish this.
The first time you try and build an MVC application you will
likely find the concept of splitting up and separating your application
controller logic from your UI generation code a little strange. It will
probably take some dedicated app-building time before you become comfortable
and orient your mind-set around the idea of processing a request, executing all
of the application logic for it, packaging up the viewdata required to build a
UI response, and then handing it off to a separate view page to render
it. Important: If this model doesn't feel comfortable to you then don't
use it - the MVC approach is purely optional, and we don't think it is
something everyone will want to use.
The benefit and goal behind this application partitioning,
though, is that it enables you to run and test your application and data logic
in isolation from your UI rendering code. This makes it much easier to
develop comprehensive unit tests for your application, as well as to use a TDD
(test driven development) workflow as you build your applications. In
later blog posts I'll drill in deeper into this more, as well as discuss best
practices you can use to easily test your code.
Hope this helps,
Scott