要在ASP.NET Core中使用嵌套区域进行路由,需要执行以下步骤:
首先,将区域文件夹添加到应用程序的项目中。在项目的根目录下,右键单击项目,选择“添加”>“新建文件夹”,并将文件夹命名为区域的名称(例如,Admin)。
在区域文件夹内,创建一个名为[AreaName]AreaRegistration.cs
的新类文件。在这个文件中,我们将配置区域的路由。
using Microsoft.AspNetCore.Mvc;
namespace YourApplication.Areas.Admin
{
public class AdminAreaRegistration : AreaRegistration
{
public override string AreaName => "Admin";
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
name: "Admin_default",
template: "Admin/{controller=Home}/{action=Index}/{id?}");
}
}
}
Startup.cs
文件中的ConfigureServices
方法中,添加以下代码来注册区域。services.AddControllersWithViews()
.AddRazorRuntimeCompilation();
services.AddRazorPages();
services.Configure(options =>
{
options.AreaViewLocationFormats.Clear();
options.AreaViewLocationFormats.Add("/Areas/{2}/{1}/{0}.cshtml");
options.AreaViewLocationFormats.Add("/Areas/{2}/Shared/{0}.cshtml");
options.AreaViewLocationFormats.Add("/Views/Shared/{0}.cshtml");
});
Startup.cs
文件中的Configure
方法中,添加以下代码来启用区域路由。app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "areaRoute",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
});
Areas/Admin/Controllers/HomeController.cs
控制器中,添加以下代码:using Microsoft.AspNetCore.Mvc;
namespace YourApplication.Areas.Admin.Controllers
{
[Area("Admin")]
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
}
Areas/Admin/Views/Home/Index.cshtml
视图中,添加以下代码:Welcome to Admin Home!
现在,当您访问/Admin/Home/Index
时,将显示“Welcome to Admin Home!”的文本。