13

通常のリンクを介して呼び出される可能性のあるアクションがあります。その場合、View() を返します。または、AJAX または RenderAction (つまり、子アクションとして) を介して呼び出すこともできます。 PartialView()。

AJAX 部分を整理するのは簡単ですが、自分のアクションが子アクションとしてレンダリングされているかどうかをテストするにはどうすればよいですか?

理想的には、次のようなコードを記述できるようにしたいと考えています。

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

return View();

明らかに Request.IsChildAction() は存在しません - 何か似たようなものがありますか、それとも常に PartialView を返す特別な ChildAction を作成する必要がありますか?

4

1 に答える 1

33

あなたはほとんどそこにいました:

public ActionResult Foo()
{
    if (Request.IsAjaxRequest() || ControllerContext.IsChildAction)
    {
        return PartialView();
    }
    return View();
}
于 2011-09-14T21:32:51.383 に答える