.NET 7 和 UseEndPoints()

Sky*_*ell 25 c# asp.net-core razor-pages .net-7.0 asp.net-core-7.0

我正在尝试将 .NET Core 3.1 项目转换为 .NET 7。

当我在课堂上使用它时Program.cs

app.UseEndpoints(endpoints =>
{
    endpoints.MapRazorPages();

    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
});
Run Code Online (Sandbox Code Playgroud)

它给了我这样的信息:

建议使用顶级路由注册 UseEndpoints

Show potential fixes然后,我在 Visual Studio 中单击,它显示以下提示:

app.UseEndpoints(endpoints =>
{
    _ = endpoints.MapRazorPages();

    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
});
Run Code Online (Sandbox Code Playgroud)

这对我来说看起来是一样的。

在.NET 7中,如果我需要使用RazorPages()该怎么办?

谢谢!

Gur*_*ron 28

据我所知,它应该按原样工作,但警告建议在最小托管应用程序的顶层注册路由,即:

app.MapRazorPages();

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");
Run Code Online (Sandbox Code Playgroud)

请参阅ASP0014:建议使用顶级路由注册代码分析规则。

  • 哦,好吧,所以我不需要`UseEndpoints`,我可以将`endpoints.MapControllerRoute`更改为`app.MapControllerRoute`?谢谢! (3认同)