在我的 ASP.NET MVC 4 应用程序中,我创建了一个仅显示用于打印的数据网格的视图(不是部分视图)。这充当打印安全视图。这是通过将您发送到视图的简单标记启用的。问题是,母版页布局正在视图中加载。
ASP.NET MVC 4 应用程序中是否有任何地方可以秘密配置我的视图以包含主布局?
在我的 ASP.NET MVC 4 应用程序中,我创建了一个仅显示用于打印的数据网格的视图(不是部分视图)。这充当打印安全视图。这是通过将您发送到视图的简单标记启用的。问题是,母版页布局正在视图中加载。
ASP.NET MVC 4 应用程序中是否有任何地方可以秘密配置我的视图以包含主布局?
是的。检查你的~/Views/_ViewStart.cshtml
文件,你可能会发现这样的东西:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
你可以在你的视图中覆盖它:
@{
Layout = null;
}
或者,如果您的视图是通过操作呈现的,请尝试返回PartialView()
而不是View()
:
public ActionResult RenderGrid()
{
...
return PartialView(); // return View without invoking _ViewStart.cshtml
}
如果您有一个非局部视图,并且除非您覆盖布局,否则_ViewStart.cshtml
将使用其中配置的任何内容。您可以通过将其添加到您的视图来覆盖它:
@{
Layout = null;
}
由于我的 _Layout 完全在 1 个元素中,因此我能够使用 javascript 来隐藏它。这不是我喜欢的答案,因为它不是解决方案,而是一种廉价的解决方法。