在我们的默认布局中,我们将徽标包含在URL.Action中以导航回主屏幕。但是,如果我们在某个区域,它会尝试导航到该区域中的主控制器,该控制器不存在。
我们的家庭控制器是提交。这是布局文件中的链接:
this
如果我在这样的区域:/ Admin / Security / Index
上面的链接试图转到:/ Admin / Submission / Index
但应该去:/提交/索引
我确信有更好的方法,但我还没有找到它。
答案 0 :(得分:1)
像参数一样指定区域。所以你的第一行应该是:
<a class="navbar-brand custm-navbar-brand" href="@Url.Action("Index", "Submission", new { Area = "AreaName" })">
答案 1 :(得分:1)
您可以在Url.Action
来电中指定区域,但这可能会变得混乱。
不是必须指定区域,为什么不将路由排除在外,以便知道将其绑定到该命名空间:
context.MapRoute("ExpressCheckoutRoute",
"expresscheckout/stage/{stageName}/{id}",
new { controller = "ExpressCheckout", action = "Stage", area = "FrontEnd", id = UrlParameter.Optional },
new[] { "Web.Areas.FrontEnd.Controllers" }
).DataTokens["UseNamespaceFallback"] = false;
这为我排序了问题,我不再需要指定区域参数(请注意该映射的最后两部分)。