After reviewing Rob Conery's post, a few notes:

  • Syntax (no <%=):
<% Html.RenderAction<PersonComponentController>(c=>c.List()); %>
  • The component does not share ViewData with the er, "calling view"..
  • You can use a View User Control (ascx) or a View Page (aspx).
  • By default the component is browsable. You can turn this off using IgnoreRoute:
routes.IgnoreRoute("PersonComponent/{action}");

My personal opinion is that this violates the separation of concerns so important to the MVC pattern. Having a method within your view calling back into a controller in order to render out a bit more view makes me feel a wee bit dirty ;). We’re developing prototypes for an alternative approach. In the meanwhile, I recognize that for a small sacrifice of pattern purity, this method is very useful, hence its inclusion in the MVC Futures assembly, but do understand that you use it at your own risk.

Yeah, and these components need route data and other stuff from the view. It will be interesting to see what they come up with so that I can just drag in my UberGrid and forget about all this coding.  (kidding!) 

For now, this works and it's testable.