2016-11-05 3 views
0

abgeleitet werden Ich habe ein MVC5-Projekt mit VS2013, und versuchte, die 12 Schritte hier zu folgen, um einen RDLC-Bericht zu erstellen. http://www.dotnetawesome.com/2015/01/how-to-display-rdlc-report-in-report-viewer-control-into-mvc4.htmlMVC5 - Erstellen RDLC-Bericht über ASPX, View muss von ViewPage Fehler

Allerdings habe ich diesen Fehler bei der partiellen Ansicht Rendering erhalten.

The view must derive from ViewPage, ViewPage<TModel>, ViewUserControl, or ViewUserControl<TModel>. 

Ich sah alle ähnlichen Artikel auf, versuchte Bezug auf System.Web.Mvc.ViewPage in web.config unter Ansicht hinzufügen, über Vererbung. Habe auch versucht, IgnoreRoute in Global.asax/RouteConfig.cs hinzuzufügen.

routes.IgnoreRoute("{resource}.aspx/{*pathInfo}"); 

Dennoch erhielt ich immer noch diese Fehlermeldung: (Irgendwelche Vorschläge?)

Server Error in '/' Application. 

The view at '~/Views/Shared/RPT_Test_ASPX.aspx' must derive from ViewPage, ViewPage<TModel>, ViewUserControl, or ViewUserControl<TModel>. 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidOperationException: The view at '~/Views/Shared/RPT_Test_ASPX.aspx' must derive from ViewPage, ViewPage<TModel>, ViewUserControl, or ViewUserControl<TModel>. 

Source Error: 


Line 3: } 
Line 4: <h2>My Test List</h2> 
Line 5: @Html.Partial("RPT_Test_ASPX") 
Line 6: 
Line 7: 

Source File: c:\SVN\TestProject\trunk\TestProject\Views\Report\Index.cshtml Line: 5 

Stack Trace: 


[InvalidOperationException: The view at '~/Views/Shared/RPT_Test_ASPX.aspx' must derive from ViewPage, ViewPage<TModel>, ViewUserControl, or ViewUserControl<TModel>.] 
    System.Web.Mvc.WebFormView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +278 
    System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +382 
    System.Web.Mvc.HtmlHelper.RenderPartialInternal(String partialViewName, ViewDataDictionary viewData, Object model, TextWriter writer, ViewEngineCollection viewEngineCollection) +467 
    System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData) +155 
    System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName) +91 
    ASP._Page_Views_Report_Index_cshtml.Execute() in c:\SVN\TestProject\trunk\TestProject\Views\Report\Index.cshtml:5 
    System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +270 
    System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +122 
    System.Web.WebPages.StartPage.RunPage() +63 
    System.Web.WebPages.StartPage.ExecutePageHierarchy() +100 
    System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +131 
    System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +695 
    System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +382 
    System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +431 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +39 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +116 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +529 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +106 
    System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +321 
    System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +185 
    System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +42 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +133 
    System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +56 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +40 
    System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +34 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +70 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +133 
    System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +56 
    System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +37 
    System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +44 
    System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +39 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +62 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +133 
    System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +56 
    System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +37 
    System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +39 
    System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +39 
    System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +39 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +70 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +133 
    System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +56 
    System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +37 
    System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +40 
    System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +38 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9644097 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155 

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.1055.0 

Antwort

1

fand schließlich die Antwort hier: https://reportviewerformvc.codeplex.com/wikipage?title=Getting%20Started

Grundsätzlich installieren ReportViewerForMvc über NuGet,

PM> Install-Package ReportViewerForMvc 

und es wird eine "ReportViewerWebForm.aspx" p Alter an der Wurzel Ihres Projekts. Machen Sie alle Ihre Datenquellenzuordnung rdlc & in Ihrem Controller, legen Sie sie in den ViewBag und rufen Sie die Ansicht auf.

In der Ansicht (cshtml) Seite hinzufügen

@using ReportViewerForMvc 

oben, und diese Zuschauer im Körper hinzufügen.

@Html.ReportViewer(ViewBag.ReportViewer as Microsoft.Reporting.WebForms.ReportViewer) 

Es funktioniert für mich. Hoffe das hilft anderen.


Hier ist mein Controller-Code:

MyEntities context = new MyEntities(); 
var myData = context.usp_MyStorProc(_var1, _var2); 

ReportViewer reportViewer = new ReportViewer(); 

reportViewer.LocalReport.ReportPath = Request.MapPath(Request.ApplicationPath); 

reportViewer.LocalReport.DataSources.Clear(); 
ReportDataSource rdc = new ReportDataSource("MyDataSourceName", myData); 

reportViewer.LocalReport.DataSources.Add(rdc); 
reportViewer.LocalReport.Refresh(); 
reportViewer.ProcessingMode = ProcessingMode.Local; 
reportViewer.LocalReport.ReportPath += @"Reports/MyReportName.rdlc"; 
reportViewer.Width = 900; 
reportViewer.Height = 600; 
reportViewer.ZoomMode = ZoomMode.PageWidth; 

ViewBag.MyReportName = reportViewer; 

Seien Sie sicher, dass alle Report Referenzen enthalten (die in GAC oder Download von der Microsoft-Website zu finden sind):

  • Microsoft.ReportViewer.Common
  • Microsoft.ReportViewer.ProcessingObject Modell
  • Microsoft.ReportViewer.WebForms
  • Microsoft.ReportViewer.WinForms
Verwandte Themen