You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core Admin区域路由异常:SlideController跳转路径错误求助

解决ASP.NET Core Area路由跳转异常问题

1. 确认控制器的Area特性配置

得给SlideController类加上[Area("admin")]特性,并且继承Controller基类,代码示例:

[Area("admin")]
public class SlideController : Controller
{
    public IActionResult Index()
    {
        return View();
    }

    public IActionResult New()
    {
        return View();
    }
}

2. 检查Program.cs里的路由配置

注册路由时,要把Area的路由规则放在默认路由前面(否则会优先匹配默认路由),代码如下:

// 先配置Area路由规则
app.MapControllerRoute(
    name: "areas",
    pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);

// 再配置非Area的默认路由
app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}"
);

3. 修正布局页中的菜单链接

布局页里的菜单链接不能直接硬写路径,得用ASP.NET Core的标签助手或Url方法指定Area名称,两种正确写法:

<!-- 使用标签助手生成链接 -->
<a asp-area="admin" asp-controller="Slide" asp-action="Index">Slide</a>
<a asp-area="admin" asp-controller="Slide" asp-action="New">新建Slide</a>

<!-- 或者用Url.Action方法生成链接 -->
<a href="@Url.Action("Index", "Slide", new { area = "admin" })">Slide</a>

之前硬编码的/Slide会直接匹配根路由下的控制器,自然不会带上admin Area前缀。

4. 核对视图文件的路径

SlideController对应的视图必须放在正确的Area目录中,路径应为:
Areas/admin/Views/Slide/Index.cshtml
Areas/admin/Views/Slide/New.cshtml
路径错误也可能引发路由匹配异常。


内容的提问来源于stack exchange,提问作者ardaoran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:47:43