Is current action a ChildAction?

asp.net-mvc, asp.net-mvc-3

Solution

You could use the `IsChildAction` property:

public ActionResult Index()
{
    if (ControllerContext.IsChildAction)
    {
         // The Index action was invoked as child action using 
         // @Html.Action("index")
    }
    ...
}

Problem

How can I determine if current action is a ChildAction or routed main action? Should I check the URL and compare to the action's name? That's not so nice, since it's dependent on routing patterns... Or should I make two actions of the same name, put a ChildActionOnly on one of them and have separate logic (mainly returning View() or PartialView())? How will the overloads be differentiated? Okay, from an other perspective: How to make it so, that if it's a ChildAction then return a PartialView, otherwise a full View?

Original source