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

ASP.NET MVC中Area内MemberList视图无法通过锚点调用的问题求助

解决方案

先看你代码里的两个关键问题:

1. 控制器名称拼写错误

第二个锚点标签里的asp-controller="Dashboad"存在拼写错误,正确名称应为Dashboard,这是路由匹配失败的核心原因之一。

2. Url.Action未指定Area参数

第一个@Url.Action写法没有传入Area参数,ASP.NET MVC无法定位到Member区域下的控制器,必须补充Area参数。


修正后的两种有效写法:

写法一:使用Url.Action

<a class="nav-link" href="@Url.Action("MemberList", "Dashboard", new { area = "Member" })">会员列表</a>

写法二:使用Tag Helper(修正拼写后)

<a class="nav-link" asp-controller="Dashboard" asp-action="MemberList" asp-area="Member">会员列表</a>

额外检查项:

  • 确保DashboardController中的MemberList方法是public的,并且正确返回视图:
    public ActionResult MemberList()
    {
        // 业务逻辑代码
        return View();
    }
    
  • 确认Member区域的路由配置正确:
    传统AreaRegistration方式下,MemberAreaRegistration.cs需包含正确路由规则:
    public class MemberAreaRegistration : AreaRegistration 
    {
        public override string AreaName => "Member";
    
        public override void RegisterArea(AreaRegistrationContext context) 
        {
            context.MapRoute(
                "Member_default",
                "Member/{controller}/{action}/{id}",
                new { action = "Index", id = UrlParameter.Optional }
            );
        }
    }
    
    ASP.NET Core端点路由模式下,需在Startup/Program.cs中配置区域路由:
    app.MapControllerRoute(
        name: "areas",
        pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
    );
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 10:07:32