|
我的项目是在MVC3 Razor Tech中开发的.我的母版页和内容页是使用Razor MVC3开发的.我想在我的项目中显示SSRS报告生成器.我在博客中搜索并了解到我们无法在MVC3 Razor中显示SSRS报告.
由于我们可以在MVC3中使用’webform’,我们可以显示报告.
问题:在我的项目中,主页面和内容页面都是用Razor .cshtml开发的.因为访问.aspx很困难.如果我错了,请更正我.
要求:请帮我在’VIEW’MVC3 Razor框架中显示webforms.我的项目登陆页面是webform.在该网页表单页面中,我需要显示SSRS报告
解决方法
我必须这样做,所以我为我工作:
假设您有一个名为Summary的控制器. 对于此实现,您无需添加或修改任何操作.
然后,正如您告诉我的那样,在视图文件夹中添加名为“SkillReport.aspx”的文件
Views/Summary/SkillReport.aspx
(最初留在空白的SkillReport.aspx或只是添加一些文字,如“技能报告”)
在Global.asax中:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapPageRoute("Report","Report/{rptController}/{rptName}","~/Views/{rptController}/{rptName}.aspx");
...
}
****–> I have attached the snapshot of my solution explorer My routes.Mappageroute code is “routes.MapPageRoute(“Report”,“Report/Summary”,“~/Views/Summary/SkillReport.aspx”);” Please change the mapPageRoute for the above folder structure.** <–
{}中包含的值是占位符.您不得在此处提供控制器的名称或报告.收到请求时,此路由通过将后缀“rptController”添加到URL中的控制器值来确定要调用的控制器,以确定将处理请求的控制器的类型名称. URL中的rptName值确定要调用的WebForm.aspx.
假设您需要其他两个报告.
>在摘要控制器中,并报告名称FullNames >在名为Product的控制器中,并报告名称列表.
使用这些参数可以避免为每个报告创建路径.
routes.MapPageRoute("Report","~/Views/{rptController}/{rptName}.aspx");
http://localhost/Report/Summary/SkillReport --> /Views/Summary/SkillReport.aspx
http://localhost/Report/Summary/FullNames --> /Views/Summary/FullNames.aspx
http://localhost/Report/Product/List --> /Views/Product/List.aspx
在这条路线上我们补充说:
>“报告”是这条路线的名称,你可以把任何其他 >“Report / {rptController} / {rptName}”:这是要识别的模式URL 何时调用Report-WebForm,“Report”作为“key”和 {rptController}是控制器的名称.将为rptController分配Controller名称.在这种情况下,Summary和rptName与SkillReport >“/ Views / {rptController} / {rptName} .aspx”是物理的 路径.当使用此路由与摘要控制器,并调用SkillReport时,这将 调用Views / Summary / SkillReport.aspx
路由文档:http://msdn.microsoft.com/en-us/library/cc668201(v=vs.100).aspx#url_patterns
此时,您可以验证是否可以使用以下命令访问开发环境中的SkillReport.aspx:
http://localhost/Report/Summary/SkillReport
或者也许在某个特定的港口……就像
http://localhost:1057/Report/Summary/SkillReport
最后,SkillReport.aspx(像这样……检查ProcessingMode ……)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SkillReport.aspx.cs" Inherits="XXX.SkillReport" %>
<%@ Register Assembly="Microsoft.ReportViewer.WebForms,Version=10.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"
Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<meta http-equiv="X-UA-Compatible" content="IE=100"/>
</head>
<body>
<form id="frmRpt" runat="server">
<div>
<asp:ScriptManager ID="sm" runat="server">
</asp:ScriptManager>
<rsweb:ReportViewer ID="rpt" runat="server" Width="100%" Height="90%" AsyncRendering="false" ProcessingMode="Local" ShowRefreshButton="false">
</rsweb:ReportViewer>
</div>
</form>
</body>
</html>
有这个标签
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
你在Safari和其他浏览器中实现了这个节目.
要从VIEW(.cshtml)访问报告,需要添加链接.一世.即:
<a href="/Report/Summary/SkillReport" >Show My Report :) </a>
作为最后一条评论,我建议在创建SkillReport.aspx后输入“设计模式”并从工具箱中拖动报告的控件.这将自动在web.config中注册所需的值
(编辑:安卓应用网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|