ho dovuto farlo e quindi ho lavorato per me:
Supponiamo di avere un controller chiamato Sommario. Per questa implementazione, non è necessario aggiungere o modificare alcuna delle azioni in corso.
Poi, come mi hai detto, si aggiunge un file denominato "SkillReport.aspx" nelle viste cartella
Views/Summary/SkillReport.aspx
(inizialmente lasciato in SkillReport.aspx vuoto o semplicemente aggiungere un po 'di testo come "rapporto di abilità")
In Global.asax:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapPageRoute("Report", "Report/{rptController}/{rptName}", "~/Views/{rptController}/{rptName}.aspx");
...
}
**** -> ho Atta ched l'istantanea della mia soluzione explorer My routes.Mappageroute code is "routes.MapPageRoute (" Report "," Report/Summary "," ~/Views/Summary/SkillReport.aspx "); " favore cambia le mapPageRoute per la struttura delle cartelle sopra ** < -.
I valori racchiusi in {} sono segnaposto Non si deve dare il nome del controller. o segnalare lì. Quando viene ricevuta una richiesta, questa rotta determina quale controller invocare aggiungendo il suffisso "rptController" al valore del controller nell'URL per determinare il nome del tipo del controller che gestirà la richiesta.Il valore rptName nell'URL determina quale WebForm.aspx da chiamare.
Supponiamo di aver bisogno di altri due rapporti.
- In Sintesi del controller, e riferire nome FullNames
- In un controller di nome prodotto, e riportare nome Lista.
Utilizzando i parametri si evita di dover creare un percorso per ciascun report.
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
Su questa rotta abbiamo aggiunto:
"Report" è il nome di questo percorso, si può mettere qualsiasi altro
"Rapporto/{rptController}/{rptName} ": questo è l'URL del pattern per identificare quando richiamare il tuo Report-WebForm," Report "funziona come" chiave "e {rptController} è il nome del controller. rptController verrà assegnato con il nome del controller. In questo caso Sintesi e rptName con SkillReport
"~/Vista/{} rptController/{} rptName aspx" è il percorso fisico . Quando si utilizza questo percorso con Sintesi controller e chiamare SkillReport questo richiamare alla Visualizzazioni/Sommario/SkillReport aspx
documentazione Routing: http://msdn.microsoft.com/en-us/library/cc668201(v=vs.100).aspx#url_patterns
A questo punto si puoi verificare che puoi accedere al tuo SkillReport.aspx nel tuo ambiente di sviluppo usando:
http://localhost/Report/Summary/SkillReport
O forse ad un certo particolare porta ... come
http://localhost:1057/Report/Summary/SkillReport
Infine, SkillReport.aspx (come questo ... controlla 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>
Con questo tag
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
si raggiunge quello spettacolo in Safari e altri browser.
Per accedere al report da VIEW (.cshtml) è necessario aggiungere un collegamento. io. e. :
<a href="/Report/Summary/SkillReport" >Show My Report :) </a>
Come ultimo commento, vi consiglio dopo aver creato SkillReport.aspx entrare in "modalità di progettazione " e trascinare dalla casella degli strumenti controlli del reporting. Questo registrerà automaticamente i valori richiesti in web.config
@Mate .. ho aggiornato le mie domande in soluzione ur "-><-" –
Spero che sarà utile. Sentiti libero di aggiungere altre domande/modifiche. – Mate
@Mate .. Grazie .. Ho aggiornato l'altra domanda nella tua soluzione nel formato '-> Domanda <-' –