SubControllers are MVC Controllers that are also parameters to your action methods. Incorporating their use in large systems allows for composition, dependency inversion, and separation of concerns.
Sometimes we want Controller actions to pass objects into SubControllers so that the SubControllers can do interesting things with them.
For example, in a Product Controller we have the [...]
I should have known something was up when I caught Jeffrey Palermo (my boss at Headspring) browsing the ASP.NET MVC Preview 5 source.
We're working on a enterprise web application using ASP.NET MVC. That week one of our tasks was to create a rather complex page full of robust components that did intricate little things [...]
ASP.NET MVC Preview 5 dropped a few days ago and I upgraded my apps today. Just a few minor notes on the process, which was painless. Most changes are covered in the release notes.
RenderUserControl is now RenderPartial
Asserting that Controller.View() was called now looks like:
Assert.That(viewResult.ViewName, Is.EqualTo(string.Empty));
Some HtmlHelper changes. Some are great but the behavior of the [...]
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}");
On the implicit MVC violations, Phil says:
My personal opinion [...]
Eilon was correct - they made it easier!
It's trivial to test TempData now. This is all that's needed to port the example from his earlier post to Preview 4 (thanks Ben):
[TestFixture]
public class HomeControllerTests
{
[Test]
public void IndexSavesUserIDToTempDataAndRedirects()
{
var [...]
I am building a simple "single sign-on" ASP.NET application that interprets the current user's ASP.NET integrated security credentials to a vendor site's credentials. One of the services I wrote required the IIdentity as a constructor parameter to begin the interpretation process.
This was straightforward with regards to TDD - I simply mocked the IIdentity and [...]