c# - ASP.NET核心: UsePathBase extracts pathbase from path but MapControllers() does not consider path

标签 c# asp.net-core routes

我在 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(); 

Read more .

附注

无法在 .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/

相关文章:

c# - Try {} Catch(exception){throw}发生类型为'System.NullReferenceException'的异常

c# - 覆盖特定 API 调用的 PropertyNamingPolicy

docker - 无需在每个Dockerfile中构建二进制文件即可构建多个Docker镜像

ruby-on-rails - 测试说没有路由匹配,但它们在浏览器中工作

javascript - 使用动态 URL 查询参数提供静态目录

c# - 如何在 MongoDb 和 C# 中编写多键查询?

c# - 整数上的 Mongo C# 过滤器包含

c# - 如何从第二个窗口访问一个窗口内容

c# - .NET Core 应用程序中添加服务引用的简单性是否已被删除?

asp.net-mvc - MVC 中的路由不起作用