ASP.NET Core 区域路由(Area Routing)是一种将应用程序中的路由划分为多个区域的方式,类似于 MVC 的控制器和视图的区域划分。区域路由可以帮助开发人员更好地组织应用程序的代码和路由,并使其更易于维护。
要使用区域路由,在 ASP.NET Core 应用程序中需要进行以下配置:
Startup.cs
文件中,添加区域路由的支持。在 ConfigureServices
方法中,添加以下代码:services.AddControllersWithViews().AddRazorPagesOptions(options =>
{
options.Conventions.AddAreaPageRoute("Admin", "/Index", "admin");
});
services.AddRazorPages();
Areas/Admin
。在该文件夹中,创建一个 Startup.cs
文件,用于配置该区域的路由。public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "admin_default",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
});
}
}
Areas/Admin/Controllers/UsersController.cs
和 Areas/Admin/Views/Users/Index.cshtml
。在控制器中,可以使用 Area
特性来指定该控制器属于哪个区域。using Microsoft.AspNetCore.Mvc;
[Area("Admin")]
public class UsersController : Controller
{
public IActionResult Index()
{
return View();
}
}
Url.Action
生成区域路由的 URL。例如,在 Areas/Admin/Views/Users/Index.cshtml
视图中生成控制器的 URL 可以使用以下代码:<a href="@Url.Action("Index", "Users", new { area = "Admin" })">Manage Users</a>
这样,当用户访问以 /Admin
开头的 URL 时,就会自动将路由映射到 Areas/Admin
区域中的控制器和视图。区域路由使得应用程序的代码和路由更加整洁、有序,并可以更好地组织和管理。