如何在MVC 3中的某个区域渲染主项目中的部分?

时间:2011-06-24 17:36:24

标签: asp.net-mvc-3 razor partial-views asp.net-mvc-areas

我有一个MVC 3 Razor项目。它有一个叫Admin的区域。我在项目的Views / Shared文件夹中具有页面的基本布局(默认情况下)。我在主项目中有一个名为Common的控制器。它将负责布局的某些部分,这些部分基于业务逻辑(基于角色的导航等)。我有

@Html.Action("Navigation", "Common")

在_layout.cshtml文件中调用。这被设置为渲染导航栏。当我转到管理区域中的路径(“admin / somedomainobject / add”)时,运行时错误指出以下内容:

  

“路径的控制器   “/ admin / somedomainobject / add”不是   发现或未实施   一个IController“。

当我从布局中删除线条时,它存在得很好。如果我使用上述语法或以下语法,则会发生错误:

@{Html.RenderAction("Naviation", "Common");}

是因为我在使用区域吗?我是否以错误的方式使用主项目文件夹?

任何想法都将不胜感激!

1 个答案:

答案 0 :(得分:7)

这是因为在您的管理区域中,除非明确说明,否则所有生成的链接都将继承此区域,请尝试

@{ Html.RenderAction("Naviation", "Common", new { @area = string.Empty }); }