我有一个MVC 3 Razor项目。它有一个叫Admin的区域。我在项目的Views / Shared文件夹中具有页面的基本布局(默认情况下)。我在主项目中有一个名为Common的控制器。它将负责布局的某些部分,这些部分基于业务逻辑(基于角色的导航等)。我有
@Html.Action("Navigation", "Common")
在_layout.cshtml文件中调用。这被设置为渲染导航栏。当我转到管理区域中的路径(“admin / somedomainobject / add”)时,运行时错误指出以下内容:
“路径的控制器 “/ admin / somedomainobject / add”不是 发现或未实施 一个IController“。
当我从布局中删除线条时,它存在得很好。如果我使用上述语法或以下语法,则会发生错误:
@{Html.RenderAction("Naviation", "Common");}
是因为我在使用区域吗?我是否以错误的方式使用主项目文件夹?
任何想法都将不胜感激!
答案 0 :(得分:7)
这是因为在您的管理区域中,除非明确说明,否则所有生成的链接都将继承此区域,请尝试
@{ Html.RenderAction("Naviation", "Common", new { @area = string.Empty }); }