我使用 .NET Upgrade Assistant 将 ASP.NET Core 2.2 Web 应用程序升级到 .NET 6.0。我开始遇到路由问题,例如
未找到以下网址的网页:https://localhost:44344/Identity/Account/Login?ReturnUrl=%2F
和
InvalidOperationException:未找到视图“索引”
从控制器中删除身份验证注释后。
我在
services.AddMvc(options => options.EnableEndpointRouting = false);
中的ConfigureServices
方法中添加了Startup.cs
,但是没有用。
我还尝试将
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 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
。我的意思是删除迁移项目中过时的版本包。