📜  AddAreaFolderRouteModelConvention (1)

📅  最后修改于: 2023-12-03 15:13:15.724000             🧑  作者: Mango

AddAreaFolderRouteModelConvention

AddAreaFolderRouteModelConvention 是一个 ASP.NET Core 中使用的约定,它允许你定义如何为使用文件夹结构的 areas定义路由。

使用方法

在 ASP.NET Core 应用程序的 Startup.ConfigureServices 方法中,你可以使用 MvcOptions.Conventions 属性来添加路由约定。以下示例演示如何在应用程序中添加 AddAreaFolderRouteModelConvention 约定:

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews(options =>
    {
        options.Conventions.AddAreaFolderRouteModelConvention(
            "MyArea", 
            "/Areas/MyArea/Pages", 
            model =>
            {
                model.RouteValues["area"] = "MyArea";
            });
    });
}

在上面的示例中,我们将一个 AddAreaFolderRouteModelConvention 约定添加到默认的 MVC 约定集合中。该约定告诉 ASP.NET Core 为名为 "MyArea" 的区域的页面文件夹使用 /Areas/MyArea/Pages 作为默认文件夹路径,并设置 "area" 路由值。

现在,我们可以在 /Areas/MyArea/Pages 文件夹中创建一个名为 MyPage.cshtml 的 Razor 页面。该页面将默认被映射到 URL https://localhost:5001/MyArea/MyPage

参数说明

AddAreaFolderRouteModelConvention 构造函数的参数如下:

  • areaName:字符串,该区域的名称。必须与区域的文件夹名称相同。
  • rootDirectory:字符串,该区域的页面文件夹的路径。可以是绝对路径或相对于应用程序根的相对路径。例如,如果应用程序根目录为 /app,则 /app/Areas/MyArea/PagesAreas/MyArea/Pages 都是有效的路径。
  • configure:Action,一个代表如何配置该约定的回调函数。

configure 回调函数的参数是 PageRouteModel 对象,它表示一个 Razor 页面的路由模型。你可以使用此对象来配置该页面的路由值和约束。在上述示例中,我们将 "area" 路由值设置为 "MyArea"。

总结

AddAreaFolderRouteModelConvention 是一个方便的约定,允许你为使用文件夹结构的区域定义路由。使用它,你可以轻松地组织你的 Razor 页面,并将它们映射到 URL 路径。