从共享的部分视图访问区域名称

时间:2013-08-07 18:19:23

标签: asp.net-mvc asp.net-mvc-4

我有一个共享的_Layout.cshtml文件,由不同区域的视图使用。

_Layout.cshtml对“根”区域中的控制器上的操作@Html.Action调用(不确定如何引用无区域区域),返回PartialViewResult

我的问题是,我可以从部分操作中访问正在访问的区域的名称吗?

因此,如果用户访问/Users/User/Create,则“用户区”中的“创建”视图使用调用公共控制器操作的公共_Layout.cshtml。我需要能够以该方法获得“用户”。

到目前为止,我已查看ParentActionViewContext.RouteData,但只有控制器和操作名称显示在那里(正如我所料)。

1 个答案:

答案 0 :(得分:0)

基于our brief Twitter conversation,您说这是为了突出显示菜单/导航栏中的当前区域。

我过去做过类似的事情,我将菜单视为具有自己的控制器和动作的局部视图。采用这种方法将允许您在(view-)模型上公开MenuItem bool for“selected”或“active”,然后使用自定义HTML Helper为活动/非活动状态写出适当的HTML菜单项。

关于主题,我知道,但你可能已经使你的领域太精细了。例如,“用户”区域包含的UserController以外的其他控制器是什么?您是否可以在默认区域中使用单独的控制器来实现相同的功能分离?