asp.net core mvc区域路由

ASP.NET Core 区域路由(Area Routing)是一种将应用程序中的路由划分为多个区域的方式,类似于 MVC 的控制器和视图的区域划分。区域路由可以帮助开发人员更好地组织应用程序的代码和路由,并使其更易于维护。

要使用区域路由,在 ASP.NET Core 应用程序中需要进行以下配置:

  1. 在应用程序的 Startup.cs 文件中,添加区域路由的支持。在 ConfigureServices 方法中,添加以下代码:
csharp 复制代码
services.AddControllersWithViews().AddRazorPagesOptions(options =>
{
    options.Conventions.AddAreaPageRoute("Admin", "/Index", "admin");
});
services.AddRazorPages();
  1. 在应用程序中创建一个或多个区域文件夹,例如 Areas/Admin。在该文件夹中,创建一个 Startup.cs 文件,用于配置该区域的路由。
csharp 复制代码
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?}");
        });
    }
}
  1. 在区域中创建控制器和视图,例如 Areas/Admin/Controllers/UsersController.csAreas/Admin/Views/Users/Index.cshtml。在控制器中,可以使用 Area 特性来指定该控制器属于哪个区域。
csharp 复制代码
using Microsoft.AspNetCore.Mvc;

[Area("Admin")]
public class UsersController : Controller
{
    public IActionResult Index()
    {
        return View();
    }
}
  1. 在视图中使用 Url.Action 生成区域路由的 URL。例如,在 Areas/Admin/Views/Users/Index.cshtml 视图中生成控制器的 URL 可以使用以下代码:
csharp 复制代码
<a href="@Url.Action("Index", "Users", new { area = "Admin" })">Manage Users</a>

这样,当用户访问以 /Admin 开头的 URL 时,就会自动将路由映射到 Areas/Admin 区域中的控制器和视图。区域路由使得应用程序的代码和路由更加整洁、有序,并可以更好地组织和管理。

相关推荐
陈随易19 分钟前
前端大咖mizchi不满Rust、TypeScript却爱上MoonBit
前端·后端·程序员
雨中飘荡的记忆2 小时前
Multi-Agent + Skills + Spring AI 构建自主决策智能体
后端·spring
我叫黑大帅2 小时前
Go 语言并发编程的 “工具箱”
后端·面试·go
用户8356290780513 小时前
Python 实现 PowerPoint 形状动画设置
后端·python
用户908324602733 小时前
Spring Boot 缓存架构:一行配置切换 Caffeine 与 Redis,透明支持多租户隔离
后端
tyung3 小时前
zhenyi-base 开源 | Go 高性能基础库:TCP 77万 QPS,无锁队列 16ns/op
后端·go
子兮曰4 小时前
Humanizer-zh 实战:把 AI 初稿改成“能发布”的技术文章
前端·javascript·后端
桦说编程4 小时前
你的函数什么颜色?—— 深入理解异步编程的本质问题(上)
后端·性能优化·编程语言
百度地图汽车版4 小时前
【AI地图 Tech说】第九期:让智能体拥有记忆——打造千人千面的小度想想
前端·后端
臣妾没空4 小时前
Elpis 全栈框架:从构建到发布的完整实践总结
前端·后端