2016-11-05 10 views
0

私はVS2013を使用してMVC5プロジェクトを作成していますが、ここでは12ステップを実行してrdlcレポートを作成しようとしました。 http://www.dotnetawesome.com/2015/01/how-to-display-rdlc-report-in-report-viewer-control-into-mvc4.htmlMVC5 - ASPX経由でRDLCレポートを作成するビューはViewPageエラーから派生する必要があります

ただし、部分表示レンダリングでこのエラーが発生しました。

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

私はすべての類似記事を検索し、継承を介してViewの下のweb.configのSystem.Web.Mvc.ViewPageへの参照を追加しようとしました。また、Global.asax/RouteConfig.csにIgnoreRouteを追加しようとしました。

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

しかし、私はまだ、このエラーを受け取りました:(任意の提案ですか?)

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 

答えて

1

は、最後にここに答えが見つかりました:基本的には https://reportviewerformvc.codeplex.com/wikipage?title=Getting%20Started

、NuGet経由ReportViewerForMvcをインストールし、

PM> Install-Package ReportViewerForMvc 

とし、 "ReportViewerWebForm.aspx" pあなたのプロジェクトのルートにある年齢。すべてのrdlc &データソースマッピングをコントローラで行い、ViewBagに配置して、ビューを呼び出します。ビュー(CSHTML)ページで

、上に

@using ReportViewerForMvc 

を追加し、体内でこのビューアを追加します。

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

私のために働きます。これが他人を助けることを望みます。ここで


は私のコントローラのコードは次のとおりです。

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; 

は(GACで見つかったやMicrosoftのWebサイトからダウンロードすることができます)すべてのReportViewerの参照を含めるようにしてください:

  • Microsoft.ReportViewer.Common
  • Microsoft.ReportViewer.ProcessingObjectモデル
  • Microsoft.ReportViewer.WebForms
  • Microsoft.ReportViewer.WinForms
関連する問題