1.在Startup.cs文件中,添加以下代码以启用区域路由:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "areas",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}"
);
});
2.在Controllers文件夹中,创建一个名为“Areas”(或者其他您喜欢的名字)的文件夹。
3.在Areas文件夹中创建一个或多个文件夹,以表示您的区域(例如“Admin”、“Blog”等)。
4.在每个区域文件夹中,创建一个或多个Controller。
5.在每个Controller中,添加一个Area特性,指定所属的区域。
例如,一个AdminController可能如下所示:
using Microsoft.AspNetCore.Mvc;
[Area("Admin")]
public class AdminController : Controller
{
public IActionResult Index()
{
return View();
}
}
6.如果需要为每个控制器设置默认路由,则可以使用以下方法:
在启动类中使用 AddMvcOptions 配置控制器的默认路由,如下所示:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddMvc();
services.Configure(options =>
{
options.Conventions.AddAreaFolderRouteModelConvention(
"Admin", "/Admin", model =>
{
foreach (var selector in model.Selectors)
{
selector.AttributeRouteModel.Template = selector.AttributeRouteModel.Template.Replace("[area]", "Admin");
}
});
});
...
}
这样,就可以使用指定的区域和默认路由来实现区域路由。