如何从剃刀视图中判断它是否呈现为部分

时间:2013-12-31 16:04:02

标签: asp.net-mvc razor asp.net-mvc-partialview

我希望这是重复的,但到目前为止我的搜索还没有找到答案。

是否有一种简单的方法可以在剃刀视图中判断它是否呈现为部分?没有在模型中设置属性或ViewBag / ViewData告诉它?

例如,您可能会遇到以下情况:

public ActionResult SometimesPartialSometimesNot()
{
    return ControllerContext.IsChildAction ? PartialView() : View();
}

现在我知道您可以从视图的IsChildAction访问ViewContext,但请在网站的其他位置说明您的信息:

Html.RenderPartial("SometimesPartialSometimesNot", new CustomModel());

考虑到上述所有情况,是否有一种简单的方法可以在SometimesPartialSometimesNot视图中判断它是否呈现为部分(来自动作或其他视图)?

1 个答案:

答案 0 :(得分:3)

  

是否有一种简单的方法可以在剃刀视图中判断它是否呈现为部分?

不,除了将此信息作为模型值(或ViewData)传递之外,没有办法。顺便提一下,当你给它第二个想法时,这将使你的代码变得更好,因为partial不会依赖于使用RenderPartial助手还是以其他方式呈现为部分的事实。它是自我依赖的(仅在其视图模型上) - >所有观点应该是这样的。

注意:这可以通过子操作填充ParentActionViewContext属性。