在剃刀视图中渲染aspx页面(cshtml)

时间:2017-03-21 22:01:25

标签: asp.net asp.net-mvc-4 crystal-reports

我需要在asp.net mvc应用程序中呈现水晶报告。由于mvc不提供对reportviewer的支持。我被迫重定向到aspx页面。但是我在该重定向中丢失了layout.cshtml菜单。

无论如何我们可以在同一个窗口中的同一个剃刀页面上显示aspx页面的局部视图吗?

iframe是我能够识别但不想使用它的一种解决方案,因为在现代应用中使用iframe不是一个好习惯。

感谢。

1 个答案:

答案 0 :(得分:1)

好吧,如果iframe不是您的实用选项,那么您可能应该考虑专门为您的报告页面创建一个WebForms母版页。

然后在该母版页上,您可以将其默认的 PlaceHolder 控件设置为不可见,并在服务器代码中显式呈现Razor布局视图。

<%   var buildTitle = new StringBuilder();
     var buildMain = new StringBuilder();
     TitleContent.RenderControl(new HtmlTextWriter(new System.IO.StringWriter(buildTitle)));
     ViewBag.Title = buildTitle.ToString().Trim();
     MainContent.RenderControl(new HtmlTextWriter(new System.IO.StringWriter(buildMain)));
     ViewBag.MainContent = buildMain.ToString().Trim();
%>
<%= Html.Partial("YourRazorLayoutView", viewData: ViewData)%>

有关详细信息,请查看此blog