Как я могу узнать, вызывается ли мое действие RenderAction? - PullRequest
13 голосов
/ 15 сентября 2011

У меня есть действие, которое потенциально может быть вызвано по обычной ссылке, и в этом случае я бы вернул View (), или оно также может быть вызвано через AJAX или RenderAction (т.е. как дочернее действие), и в этом случае я вернул бы PartialView ().

Сортировка части AJAX проста - но как я могу проверить, отображается ли мое действие как дочернее действие?

В идеале, я бы хотел написать такой код:

if (Request.IsAjaxRequest() || Request.IsChildAction())
    return PartialView();

return View();

Очевидно, что Request.IsChildAction () не существует - есть что-то похожее или мне просто нужно создать специальное ChildAction, которое всегда возвращает PartialView?

1 Ответ

33 голосов
/ 15 сентября 2011

Вы были почти там:

public ActionResult Foo()
{
    if (Request.IsAjaxRequest() || ControllerContext.IsChildAction)
    {
        return PartialView();
    }
    return View();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...