如何判断RenderAction是否调用了我的动作?

Sta*_*anK 13 asp.net-mvc-3 child-actions

我有一个可能通过普通链接调用的动作,在这种情况下我会返回一个View(),或者它也可以通过AJAX或RenderAction调用(即作为子动作),在这种情况下我会返回PartialView().

排除AJAX部分很简单 - 但是如何测试我的动作是否呈现为Child Action?

理想情况下,我希望能够编写如下代码:

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

return View();
Run Code Online (Sandbox Code Playgroud)

显然,Request.IsChildAction()不存在 - 是否有类似的东西,或者我只需要创建一个总是返回PartialView的特殊ChildAction?

Dar*_*rov 33

你几乎在那里:

public ActionResult Foo()
{
    if (Request.IsAjaxRequest() || ControllerContext.IsChildAction)
    {
        return PartialView();
    }
    return View();
}
Run Code Online (Sandbox Code Playgroud)