迁移到.NET 6 和路由问题

问题描述 投票:0回答:1

我使用 .NET Upgrade Assistant 将 ASP.NET Core 2.2 Web 应用程序升级到 .NET 6.0。我开始遇到路由问题,例如

未找到以下网址的网页:https://localhost:44344/Identity/Account/Login?ReturnUrl=%2F

InvalidOperationException:未找到视图“索引”

从控制器中删除身份验证注释后。

  1. 我在

    services.AddMvc(options => options.EnableEndpointRouting = false);
    中的
    ConfigureServices
    方法中添加了
    Startup.cs
    ,但是没有用。

  2. 我还尝试将

    app.UseMvc()
    替换为
    app.UseEndpoints()
    (请参见下文),但问题仍然存在。

     app.UseMvc(routes =>
         {
             routes.MapRoute(
                 name: "default",
                 template: "{controller=Home}/{action=Index}/{id?}");
         });
    
     app.UseEndpoints(endpoints =>
         {
             endpoints.MapControllerRoute(
                 name: "default",
                 pattern: "{controller=Home}/{action=Index}/{id?}");
         });
    

有人对我如何解决这个问题有任何提示吗?

谢谢。

.net asp.net-core upgrade asp.net-mvc-routing
1个回答
0
投票

在.Net 6中,您需要在

Program.cs
中添加路由,如下所示:

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
      
var app = builder.Build();
    
app.UseRouting();    
app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();

然后检查您的项目包含的包列表,并确保过时版本的包不属于项目的一部分,例如:

Microsoft.AspNetCore.Razor.Design
/
Microsoft.AspNetCore.Mvc
。我的意思是删除迁移项目中过时的版本包

© www.soinside.com 2019 - 2024. All rights reserved.