有没有办法确定对控制器操作的调用是否来自使用Html.RenderAction函数的视图。
这类似于Request.IsAjaxRequest。如果调用来自一个视图,我想只渲染一个局部视图而不是一个包含母版页的完整视图。
BTW Render partial不是一个可行的解决方案,因为该操作会获取其他数据
答案 0 :(得分:9)
使用ControllerContext.IsChildAction具有给定的效果。这样我可以使用子操作和ajax请求提供相同的HTML(对于非JavaScript用户的后备)
if (Request.IsAjaxRequest() || ControllerContext.IsChildAction)
return PartialView("ViewName", results);