TDaver
TDaver

Reputation: 7264

Is current action a ChildAction?

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?

Upvotes: 25

Views: 5019

Answers (1)

Darin Dimitrov
Darin Dimitrov

Reputation: 1038840

You could use the IsChildAction property:

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

Upvotes: 46

Related Questions