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

Dan*_*ard 2 partial-views asp.net-mvc-areas razor asp.net-mvc-3

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

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

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

"路径控制器"/ admin/somedomainobject/add"未找到或未实现IController."

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

@{Html.RenderAction("Naviation", "Common");}
Run Code Online (Sandbox Code Playgroud)

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

任何想法将不胜感激!

Luk*_*tný 7

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

@{ Html.RenderAction("Naviation", "Common", new { @area = string.Empty }); }
Run Code Online (Sandbox Code Playgroud)