【发布时间】:2012-12-10 06:24:00
【问题描述】:
我有一个带有语言选择的 MVC4 项目:
- zh
- nl
- 法国
- 德
1 个主要部分:
- 关于
- 通用(用于菜单)
- 联系方式
- 常见问题解答
- 首页
还有3个方面:
- 管理员
- 客户
- 商店
在每个区域中,我至少有一个控制器,例如在管理中,我有控制器 overview 和相应的视图文件夹 overview,其中包含一个 index.html。 aspx 页面。
主页和所有主要页面(关于、常见问题等)都可以正常工作并且可以访问)。
但是,当我访问 url 时:localhost:xxxx/en/admin/overview 我得到了错误:
路径“/en/admin/overview”的控制器未找到或未实现 IController。
即使路由是正确的(我可以通过 Route Debugger 看到这一点),错误页面也显示当我想加载我的主菜单项时抛出了错误:
<nav id="site-navigation" class="eightcol">
@Html.Action("MenuItems", "Common")
</nav>
-- 代码因不相关而被删除--
一切似乎都井然有序,但 MVC 似乎无法加载位于 main 部分的菜单。
所以,问题的根源在于: 我可以授予某个区域(例如管理员)访问我项目主要部分(家庭、公共、关于等)中的控制器的权限吗?
【问题讨论】:
-
您是否尝试过注释掉对 Html.Action 的调用以将问题隔离到特定控制器?
-
我还没有,但现在我做到了,而且和我想的一样。区域 Admin 使用我项目主要部分的布局,当它到达 Action 时,该区域尝试访问不在引发错误的区域中的控制器。换句话说,问题的根源是,我怎样才能在我的项目的主要部分(home、common、about 等控制器)中授予对控制器的区域访问权限?
-
问题是越来越多的可能的问题和解决方案。因此,我认为,必须同时查看其他答案,而不是唯一被接受的答案。
标签: c# asp.net-mvc-4 asp.net-mvc-areas