【发布时间】:2021-11-16 10:15:12
【问题描述】:
我已根据 this page 的指导方针将现有 API 项目从 2.2 迁移到 3.0。
因此我删除了:
app.UseMvc(options =>
{
options.MapRoute("Default", "{controller=Default}/{action=Index}/{id?}");
});
并插入:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(name: "Default", pattern: "{controller=Default}/{action=Index}/{id?}");
});
但不会绑定控制器和操作。我调用的任何 API 得到的都是 404。
我应该如何调试它,我在这里错过了什么?
更新:Startup.cs 文件位于另一个程序集中。我们在许多项目中重复使用集中式 Startup.cs 文件。
【问题讨论】:
-
不,它们没有任何属性。我们只有一个全局默认路由规则。我们在其他任何地方都没有创建任何其他路由,无论是在操作级别还是控制器级别。
-
可能为时已晚,但由于没有可接受的答案:您在配置中是否有选项
options.EnableEndpointRouting = false?因为这告诉框架继续使用“旧”路由,而不是端点路由。
标签: c# asp.net-core-3.0