What is an MVC child action?

Phil Haack explains it nicely in this blog post. Basically a child action is a controller action that you could invoke from the view using the Html.Action helper:

@Html.Action("SomeActionName", "SomeController")

This action will then execute and render its output at the specified location in the view. The difference with a Partial is that a partial only includes the specified markup, there's no other action executing than the main action.

So you basically have the main action which received the request and rendered a view, but from within this view you could render multiple child actions which will go through their independent MVC lifecycle and eventually render the output. And all this will happen in the context of a single HTTP request.

Child actions are useful for creating entire reusable widgets which could be embedded into your views and which go through their independent MVC lifecycle.


A child action is an action that is invoked by using html.renderaction or html.action helper from inside of a view.


A child action is an action method that is invoked in the view through @Html.Action().

Example I have an Action on my controller.

public DateTime Time(DateTime time)
{
    return time;
}

To call this action from the View i will use:

@Html.Action("Time", new { time = DateTime.Now })