2011-09-14 17 views
13

私はView()を返すか、AJAXまたはRenderAction(つまりChild Action)を介して呼び出すことができる、通常のリンクを介して呼び出される可能性のあるアクションを持っています。 d PartialView()を返します。アクションがRenderActionによって呼び出されているかどうかを確認するにはどうすればよいですか?

AJAXの部分を並べ替えるのは簡単ですが、自分のアクションが子アクションとしてレンダリングされているかどうかをテストする方法はありますか?

理想的には、私はこのようなコードを書くことができるようにしたいと思います:

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

return View(); 

明らかRequest.IsChildAction()が存在していない - simlilar何かがある、または私はちょうど作成する必要がありますか常にPartialViewを返す特別なChildAction?

答えて

33

あなたはほとんどありました:

public ActionResult Foo() 
{ 
    if (Request.IsAjaxRequest() || ControllerContext.IsChildAction) 
    { 
     return PartialView(); 
    } 
    return View(); 
} 
+0

おかげで - 私が言うする方法はありませんでした考え始めました。 – StanK

関連する問題