我的项目使用 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 感到困惑。
我应该如何移除默认控制器? 感谢您的宝贵时间。
弹出此“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)
{
}
}