asp.net-mvc-3 – 如何在VIEW MVC3 Razor中显示webforms页面.aspx

我的项目是在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注册所需的值

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....