Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSRS报表查看器不使用asp.net mvc路由_Asp.net_Asp.net Mvc_Asp.net Mvc 4_Reporting Services_Ssrs 2012 - Fatal编程技术网

SSRS报表查看器不使用asp.net mvc路由

SSRS报表查看器不使用asp.net mvc路由,asp.net,asp.net-mvc,asp.net-mvc-4,reporting-services,ssrs-2012,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Reporting Services,Ssrs 2012,我正在尝试将SSRS报告与带有本地报告的Asp.net MVC网站一起使用 我尝试了所有提到的内容,但我一直得到一个隐藏的div,其中包含以下消息: 尚未在应用程序的Web.config文件中注册报表查看器Web控件HTTP处理程序。添加到web.config文件的system.web/httpHandlers部分,或添加到Internet Information Services 7或更高版本的system.webServer/handlers部分 处理程序被正确地添加到web配置中,如果我直

我正在尝试将SSRS报告与带有本地报告的Asp.net MVC网站一起使用

我尝试了所有提到的内容,但我一直得到一个隐藏的div,其中包含以下消息:

尚未在应用程序的Web.config文件中注册报表查看器Web控件HTTP处理程序。添加到web.config文件的system.web/httpHandlers部分,或添加到Internet Information Services 7或更高版本的system.webServer/handlers部分

处理程序被正确地添加到web配置中,如果我直接导航到aspx页面,报告将正常工作(通过,但由于没有涉及视图引擎,我无法使用任何razor帮助程序,此问题仅在我使用路由时发生

我有
RouteExistingFiles=false
并忽略了以下路由:

并通过将其从webconfig中删除来禁用
BlockViewHandler

我正在使用Microsoft.ReportViewer for visual studio 2012(版本11.0.0.0)

编辑
Scot Hanselman告诉我如何将razor视图与ASPX母版页结合使用,我正在做完全相反的事情,将ASPX用户控件与razor布局结合使用,但此Microsoft报表查看器无法使用此方法。

由于您的评论,我找到了原因,因为它无法工作

我有一个使用报表查看器的用户控件,还有一个使用该用户控件显示报表的aspx页面。如果我直接导航到报表,如:myhost/Views/Shared/ReportViewer.aspx,它可以工作,如果我使用路由,如:myhost/report/myreport,它就不能工作

当您直接导航到页面时,它由“传统”web表单基础结构呈现,因此报表查看器所需的所有元素(视图状态、脚本管理器等)都可用,报表查看器工作正常

使用布线导航时,请形成注释:

是,创建一个路由,使reportviewer由MVC控制器处理,MVC控制器返回一个razor视图,该视图使用Html.RenderPartial(“ReportControl”)呈现报表用户控件

在本例中,您呈现的是一个传统的web表单,就好像它是一个剃须刀页面。执行此操作时,报表查看器控件所需的所有基础结构都将丢失(尤其是视图状态),因此无法正常工作

因此,您需要将报表查看器页面显示为传统的web表单。您可以使用javascript在新窗口/选项卡中打开它。如果您仍然希望将其集成到现有MVC页面中,唯一的解决方案是使用
并在其中呈现报表


将其直接集成到MVC页面的另一个解决方案是使用ReportingServicesWeb服务呈现报告,并将输出发送到浏览器(例如,作为.jpg图像或PDF文档)。但是,无论您选择哪种格式,它都将缺少报表查看器的交互功能。

我提到,报表在不使用路由时可以工作(这意味着直接导航到报表查看器页面),因此显然web配置不包含任何问题。无论问题是什么,都必须与报表查看器和asp.net mvc的无状态有关。您能否更详细地解释一下您是如何尝试该报表的:在.aspx页面中是否有报表查看器?当它工作时如何访问它?当它失败时如何访问它?如果您导航到.as,您会告诉我们这一点px页面直接工作。如果你不直接导航到该页面,你会做什么?如果你给我这些信息,我会尽力帮助你。我担心你在MVC页面中进行某种奇怪的web表单用户控件集成…或者你可能正在创建一种路由,使reportviewer由MVC控制器处理,以及它应该作为传统的web表单页面运行。首先,我有一个标准的单区域asp.net mvc文件夹结构,我有一个使用报表查看器的用户控件,以及一个使用该用户控件显示报表的aspx页面。如果我直接导航到报表,如:myhost/Views/Shared/ReportViewer.aspx,它会工作,如果我使用诸如:myhost/repo的路由,它会工作rt/myreport它不起作用。是的,我正在创建一个路由,使reportviewer由MVC控制器处理,该控制器返回一个razor视图,该视图使用Html.RenderPartial(“ReportControl”)呈现报表用户控件。是的,我正在razor视图中使用aspx用户控件,除报表查看器外,其他控件都可以正常工作。根据您的评论,更新了我的答案。
{resource}.axd/{*pathInfo};
{resource}.aspx/{*pathInfo};
{resource}.ascx/{*pathInfo};