gpt4 book ai didi

asp.net-mvc-3 - 如何在 VIEW MVC3 Razor 中显示 Web 表单页面 .aspx

转载 作者:行者123 更新时间:2023-12-02 06:47:36 24 4
gpt4 key购买 nike

我的项目是在 MVC3 Razor Tech 中开发的。我的母版页和内容页是用Razor MVC3开发的。我想在我的项目中展示 SSRS 报告生成器。我在博客中搜索后发现我们无法在 MVC3 Razor 中显示 SSRS 报告。由于我们可以在 MVC3 中使用 'webform' 我们可以显示报告。

问题:在我的项目中,母版页和内容页都是使用 Razor .cshtml 开发的,因为访问 .aspx 很困难。如果我错了,请纠正我。

要求:请帮助我在 'VIEW' MVC3 Razor framwork.i.e 中显示 Web 表单。即我的项目登陆页面是 webform。在该网络表单页面中,我需要显示 SSRS 报告

最佳答案

我必须这样做,所以我为我工作:

假设您有一个名为 Summary 的 Controller 。对于此实现,您不需要添加或修改您拥有的任何操作。

然后,正如您告诉我的,您在 View 文件夹中添加一个名为“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 enter image description here 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 中的 Controller 值来确定要调用的 Controller ,以确定将处理该请求的 Controller 的类型名称。 URL 中的 rptName 值决定调用哪个 WebForm.aspx

假设您需要另外两份报告。

  1. Summary Controller 中,以及报表名称​​FullNames
  2. 在名为 Product 的 Controller 中,报表名为 List

使用参数可以避免为每个报告创建路由。

routes.MapPageRoute("Report", "Report/{rptController}/{rptName}", "~/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

在这条路线上我们添加了:

  1. “Report”是该路由的名称,可以填其他的

  2. “Report/{rptController}/{rptName}”:这是要识别的模式 URL 何时调用您的 Report-WebForm,“Report”充当“key”并且 {rptController} 是 Controller 的名称。 rptController 将被分配 Controller 名称。在本例中,SummaryrptName 以及 SkillReport

  3. “~/Views/{rptController}/{rptName}.aspx”是物理 小路。当将此路由与 Summary Controller 一起使用并调用 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) 访问报告,需要添加链接。我。 e. :

<a href="/Report/Summary/SkillReport" >Show My Report :) </a>  

作为最后一条评论,我建议在创建 SkillReport.aspx 后进入“设计模式”并从工具箱中拖动报告控件。这将自动在 web.config

中注册所需的值

关于asp.net-mvc-3 - 如何在 VIEW MVC3 Razor 中显示 Web 表单页面 .aspx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14171404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com