zhp
zhp

Reputation: 11

devexpress 21.2.5 CustomWebDocumentViewerController makes ambiguous contoller error in swagger

i use asp.net boilerplate for my project. i updated devexpress version from 21.1.4 to 21.2.5 and made a custom WebDocumentViewerController.

public class CustomWebDocumentController : 
WebDocumentViewerController
{
    public 
CustomWebDocumentController(IWebDocumentViewerMvcControllerService 
controllerService) : base(controllerService)  
    {
    }
}

i used this code to remove defualt DocumentViewerController in startup.sc:

services.AddMvc()
        .ConfigureApplicationPartManager(x =>
        {
            var parts = x.ApplicationParts;
            var aspNetCoreReportingAssemblyName = 
typeof(WebDocumentViewerController).Assembly.GetName().Name;
            var reportingPart = parts.FirstOrDefault(part => part.Name 
== aspNetCoreReportingAssemblyName);
            if (reportingPart != null)
            {
                parts.Remove(reportingPart);
            }
        });

the code is running but the defualtcontroller is still in list of controllers and makes swagger confiused.

how should i remove the defualt contoller? thanks for your time.

Upvotes: 0

Views: 523

Answers (1)

Faiyaz Khan
Faiyaz Khan

Reputation: 11

The reason why this "ambiguous HTTP method for Action Error" pops up is because this controller 'CustomWebDocumentController' is missing the HTTP action decoration ([HttpGet],[HttpPost] etc) on top of it.

Simply decorate the controller with '[ApiExplorerSettings(IgnoreApi=true)]'. This will ultimately cause the entire controller or individual action to be omitted from the Swagger output.

Source: Exclude controllers methods from docs without using the Obsolete attribute

[ApiExplorerSettings(IgnoreApi = true)]
public class CustomWebDocumentController : WebDocumentViewerController
{
  public CustomWebDocumentController(IWebDocumentViewerMvcControllerService controllerService) : base(controllerService)  
  {

  }
}

Upvotes: 1

Related Questions