Is current action a ChildAction?

2019-04-18 08:53发布

问题:

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?

回答1:

You could use the IsChildAction property:

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