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

ASP.NET Admin Area视图链接生成异常,如何正确访问?

解决ASP.NET Admin Area视图链接错误问题

1. 确认Area路由配置是否正确

先检查Admin区域的路由注册:

  • 若是ASP.NET MVC旧版,查看Areas/Admin/AdminAreaRegistration.cs,确保路由规则正确:
public override void RegisterArea(AreaRegistrationContext context) 
{
    context.MapRoute(
        "Admin_default",
        "Admin/{controller}/{action}/{id}",
        new { action = "Index", id = UrlParameter.Optional }
    );
}
  • 若是ASP.NET Core,检查Program.cs/Startup.cs里的路由配置,保证Area路由优先注册:
app.MapControllerRoute(
    name: "Admin",
    pattern: "Admin/{controller}/{action}/{id?}",
    defaults: new { area = "Admin" }
);

// 全局路由放在Area路由之后
app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}"
);

2. 核对控制器与视图的对应关系

  • 必须存在Admin区域下的AccountCurrenciesController,且类上标注[Area("Admin")]特性:
[Area("Admin")]
public class AccountCurrenciesController : Controller
{
    public IActionResult Index()
    {
        return View();
    }
}
  • 视图文件路径必须严格对应:Areas/Admin/Views/AccountCurrencies/Index.cshtml,注意大小写(Linux环境下大小写敏感)。

3. 调整链接写法排查问题

如果配置都没问题,先尝试用Url.Action手动生成链接,替代Tag Helper:

<a id="accountCurrencies" class="dropdown-item" 
   href="@Url.Action("Index", "AccountCurrencies", new { area = "Admin" })">
    Account Currencies
</a>

如果手动生成的URL正确,再检查Tag Helper是否正常加载(确保_ViewImports.cshtml里引用了@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers)。

4. 排除路由冲突

检查全局路由是否有和Admin区域路由冲突的规则,比如全局路由是否匹配了同名的非Area控制器,导致Area路由被忽略。确保Area路由的注册顺序在全局路由之前。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 22:27:39