Skip to main content

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

StartupExtensions.AddDefaultReportingControllers(IMvcBuilder) Method

OBSOLETE

This method is no longer used. Review the following document for more information: https://go.devexpress.com/Reporting_BC1019255.aspx

The method is obsolete and should not be used in your code.

Namespace: DevExpress.AspNetCore.Reporting

Assembly: DevExpress.AspNetCore.Reporting.v24.2.dll

NuGet Package: DevExpress.AspNetCore.Reporting

#Declaration

[Obsolete("This method is no longer used. Review the following document for more information: https://go.devexpress.com/Reporting_BC1019255.aspx", true)]
public static IMvcBuilder AddDefaultReportingControllers(
    this IMvcBuilder builder
)

#Parameters

Name Type Description
builder IMvcBuilder

The IMvcBuilder instance this method extends.

#Returns

Type Description
IMvcBuilder

A IMvcBuilder that can be used to further configure the MVC services.

#Remarks

Do not use this method. Instead, implement the reporting controllers explicitly. For more information, review the following document: Breaking Change T1019255.

To implement custom controllers, inherit from the base controller class and specify a custom route.

The following table lists base controller classes that process requests from reporting components, default routes, and methods that allow you to specify custom routes:

Component Base Controller Class Predefined Route Custom Route
Report Designer ReportDesignerController DXXRD ReportDesignerHandlerUri(String)
Document Viewer WebDocumentViewerController DXXRDV ReportPreviewHandlerUri(String)
Query Builder QueryBuilderController DXXQB QueryBuilderHandlerUri(String)

An application with End-User Report Designer requires all three controllers for proper operation.

The following code snippet implements controllers with default routes:

using DevExpress.AspNetCore.Reporting.QueryBuilder;
using DevExpress.AspNetCore.Reporting.QueryBuilder.Native.Services;
using DevExpress.AspNetCore.Reporting.ReportDesigner;
using DevExpress.AspNetCore.Reporting.ReportDesigner.Native.Services;
using DevExpress.AspNetCore.Reporting.WebDocumentViewer;
using DevExpress.AspNetCore.Reporting.WebDocumentViewer.Native.Services;
// ...
public class CustomWebDocumentViewerController : WebDocumentViewerController {
    public CustomWebDocumentViewerController(IWebDocumentViewerMvcControllerService controllerService) : base(controllerService) {
    }
}

public class CustomReportDesignerController : ReportDesignerController {
    public CustomReportDesignerController(IReportDesignerMvcControllerService controllerService) : base(controllerService) {
    }
}

public class CustomQueryBuilderController : QueryBuilderController {
    public CustomQueryBuilderController(IQueryBuilderMvcControllerService controllerService) : base(controllerService) {
    }
}

For more code samples with custom controllers, review the following example:

View Example: ASP.NET Core Reporting - Best Practices

See Also