我在 dotnet 2.1 应用程序中使用了 UsePathBase。
app.UsePathBase("/app1"); // extract /app1 from path
app.UseMvc(routers => ...) // routes consider path only
这在 dotnet 6 中不再起作用:当我使用时
app.UsePathBase("/app1");
app.MapControllers(); // controller routing does not consider the reduced path
之前
"/app1/home/index" routed to HomeController, Index method
现在无法路由到任何地方。
我做错了什么吗?
我诊断出患有
app.Use((context, next) =>
{
Console.WriteLine("=> {0}", context);
return next.Invoke();
});
这表明 UsePathBase 有效,但 MapControllers 中的后续路由不起作用。至少这是我从观察中得到的结果。
最佳答案
在UsePathBase
之后添加对UseRouting
的显式调用:
app.UsePathBase("/app1");
app.UseRouting();
app.MapControllers();
附注
无法在 .NET 7 解决方案中重现,只能在 .NET 6 解决方案中重现,也许它已被修复/恢复。
关于c# - ASP.NET核心: UsePathBase extracts pathbase from path but MapControllers() does not consider path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74882439/