2013-01-16 40 views
5

我仍然不确定最好的解决方法。MVC 4中的ReportViewer 4部分

我已经阅读了大量的资源,但仍然没有接近可行的解决方案。

  1. 我创建了一个部分ASCX文件。新增了Report viewer,然后在我的CSHTML文件中渲染了部分内容。这是我最接近的。我可以看到报告查看器,按钮等。但由于某些原因,数据从不显示。

  2. 我试过了ASPX页面里面的一个IFrame但是这不是我想去的方式,关于使这个解决方案工作。

  3. 直接加载ASPX页面。但我失去了我的_Layout.cshtml主页风格。

有些人建议更改config/Global.asax中的各种东西,有些人甚至认为它不是必需的。

理想情况下,我想把它作为页面中的一部分。但如果我保留我的主布局,可以处理它是页面上唯一的事情。

我以前的语法/ pages/non-MVC的经验仅限于这个项目 - 试图让它工作。

我的数据通过组件设置进行链接。 aspx页面中的连接工作正常,如单页或iframe。但不是在ascx。

+0

你是如何加载你的部分数据? (#1尝试) –

+0

@dennisrongo我尝试了各种各样的方式。大多数围绕创建数据集和绑定 – Doomsknight

回答

8

ReportView控件需要启用ViewState。在ASP.NET MVC中,这种概念不再存在。这意味着您不能在本机ASP.NET MVC视图或部分内部使用此控件。只能在经典的WebForm(不在ASP.NET MVC视图中)中使用它,并将此WebForm嵌入到当前ASP.NET MVC视图或部分内的iframe中。例如,您可以将报表呈现为图片,并直接将其转换为响应而不使用此控件。这是一个blog post,它说明了这项技术。因此,您可以使用控制器操作将报告生成为JPEG图像,然后使用<img>标记链接到您的视图中的此控制器操作。不幸的是,这只会生成报告的静态副本,用户无法与其交互。

您可能还会检出this blog post,它说明如何可以并排运行ASP.NET MVC和经典的WebForms。

+0

嗨,我想问问题,我检查博客帖子代码,我不解决我的问题的解决方案。当我点击搜索按钮,我正在筛选和查看数据在mvc页面。之后,当用户按下reportbutton我想要路由我的搜索dto到aspx页面我如何不使用会话做到这一点? – altandogan

+0

@Darin,如果您使用的是LocalReport并绑定数据服务器端,那么您可以使用ReportView控件,因此“..,您不能在本机ASP.NET MVC视图中使用此控件...”并非完全正确。 – David