在 ASP.NET 6 脚手架区域的 program.cs 中添加“app.MapControllerRoute”的正确方法是什么?

use*_*wed 4 c# asp.net asp.net-core-mvc asp.net-core asp.net-core-6.0

我正在为我的项目使用脚手架创建一个区域。由于没有startup.csASP.NET 6 文件,我想我必须将其添加到program.cs文件中。正确的方法是什么?是以下任一方法吗:

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
      name: "Admin",
      pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
    endpoints.MapControllerRoute(
      name: "default",
      pattern: "{controller=Home}/{action=Index}/{id?}");
    endpoints.MapRazorPages();
})
Run Code Online (Sandbox Code Playgroud)

或者

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

Zhi*_* Lv 10

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

或者

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
      name: "Admin",
      pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
    endpoints.MapControllerRoute(
      name: "default",
      pattern: "{controller=Home}/{action=Index}/{id?}");
    endpoints.MapRazorPages();
});
Run Code Online (Sandbox Code Playgroud)

以上两种方法在Asp.net 6应用程序中都是正确的,您可以使用其中一种。

配置区域路由并在区域中创建控制器后,请记得[Area]为控制器添加属性。像这样:

在此输入图像描述

有关路由的更多详细信息,请参阅ASP.NET Core 中的区域