📅  最后修改于: 2023-12-03 15:13:15.724000             🧑  作者: Mango
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/Pages
和 Areas/MyArea/Pages
都是有效的路径。configure
:Action,一个代表如何配置该约定的回调函数。configure
回调函数的参数是 PageRouteModel
对象,它表示一个 Razor 页面的路由模型。你可以使用此对象来配置该页面的路由值和约束。在上述示例中,我们将 "area" 路由值设置为 "MyArea"。
AddAreaFolderRouteModelConvention
是一个方便的约定,允许你为使用文件夹结构的区域定义路由。使用它,你可以轻松地组织你的 Razor 页面,并将它们映射到 URL 路径。