devexpress 21.2.5 CustomWebDocumentViewerController 在 swagger 中产生不明确的控制器错误

问题描述 投票:0回答:1

我的项目使用 asp.net 样板。我将 devexpress 版本从 21.1.4 更新到 21.2.5 并制作了自定义 WebDocumentViewerController。

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

我使用此代码删除了startup.sc中的默认DocumentViewerController:

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);
            }
        });

代码正在运行,但默认控制器仍在控制器列表中,这让 swagger 感到困惑。

我应该如何移除默认控制器? 感谢您的宝贵时间。

c# asp.net devexpress boilerplate
1个回答
1
投票

弹出此“Action Error 的模糊 HTTP 方法”的原因是因为此控制器“CustomWebDocumentController”缺少其顶部的 HTTP 操作装饰([HttpGet]、[HttpPost] 等)。

只需用“[ApiExplorerSettings(IgnoreApi=true)]”装饰控制器即可。这最终将导致整个控制器或单个操作从 Swagger 输出中被省略。

来源:从文档中排除控制器方法而不使用 Obsolete 属性

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

  }
}
© www.soinside.com 2019 - 2024. All rights reserved.