Как я могу узнать, вызывается ли мое действие RenderAction?
У меня есть действие, которое потенциально может быть вызвано через обычную ссылку, и в этом случае я бы вернул View(), или оно также может быть вызвано через AJAX или RenderAction (т.е. как дочернее действие), и в этом случае я бы вернулся PartialView().
Разбираться с частью AJAX легко, но как я могу проверить, отображается ли мое действие как дочернее действие?
В идеале я хотел бы иметь возможность написать код, подобный этому:
if (Request.IsAjaxRequest() || Request.IsChildAction())
return PartialView();
return View();
Очевидно, что Request.IsChild Action() не существует - есть что-то похожее или мне просто нужно создать специальное Child Action, которое всегда возвращает PartialView?
1 ответ
Решение
Вы были почти там
public ActionResult Foo()
{
if (Request.IsAjaxRequest() || ControllerContext.IsChildAction)
{
return PartialView();
}
return View();
}