2011-09-14 41 views
13

我有一個可能通過正常鏈接調用的操作,在這種情況下,我會返回一個View(),或者它也可以通過AJAX或RenderAction調用(即作爲一個子操作),在這種情況下, d返回一個PartialView()。如何判斷我的動作是否由RenderAction調用?

對AJAX部分進行排序很簡單 - 但是如何測試我的動作是否被渲染爲子動作?

理想情況下,我希望能夠寫這樣的代碼:

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

return View(); 

顯然Request.IsChildAction()不存在 - 是有什麼simlilar,還是我只需要創建一個特殊的ChildAction,總是返回一個PartialView?

回答

33

你幾乎有:

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

謝謝 - 我開始覺得沒有辦法告訴 – StanK

相關問題