【发布时间】:2019-06-11 18:37:18
【问题描述】:
在 Asp.Net Core 2.1 之前,我一直在使用下面的代码来将默认路由重定向到 swagger 端点。
app.UseMvc(builder =>
{
builder.MapRoute("default", template: "api/{controller}/{action}/{id?}");
builder.MapGet("", context =>
{
context.Response.Redirect("./swagger/index.html", permanent: false);
return Task.FromResult(0);
});
});
但是,当我升级到 Asp.Net Core 2.2 时,此代码没有按预期工作(调用重定向)
这是已知问题吗?我该如何解决?
编辑:感谢@KirkLarkin
我已将options.EnableEndpointRouting 更改为false,现在它正在工作。但是,据我了解,这是传统的路由方法。
我需要做什么才能使用options.EnableEndpointRouting = true; 进行路由?
【问题讨论】:
-
我希望这会改变 MVC 切换到端点路由。您不需要尝试通过 MVC 处理此路由 - 您可以在对
UseSwaggerUI(...)的调用中清除 RoutePrefix。即app.UseSwaggerUI(o => o.RoutePrefix = string.Empty);. -
很久没有使用
UseSwaggerUI,因为 SwaggerUI 更新不频繁。此外,我的 swagger.js 中有自定义实现。因此,我需要自定义路由:)
标签: c# asp.net-core routing asp.net-core-2.1 asp.net-core-2.2