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

发布于 2025-01-10 11:09:48 字数 961 浏览 0 评论 0原文

我的项目使用 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感到困惑。

我应该如何删除默认控制器? 感谢您抽出时间。

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

感情洁癖 2025-01-17 11:09:48

弹出此“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)  
  {

  }
}

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)  
  {

  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文