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

时间:2011-09-14 21:29:31

标签: asp.net-mvc-3 child-actions

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

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

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

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

return View();

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

1 个答案:

答案 0 :(得分:33)

你快到了那里:

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