Asp.net mvc 从共享局部视图访问区域名称
我有一个共享的Asp.net mvc 从共享局部视图访问区域名称,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我有一个共享的\u Layout.cshtml文件,供不同区域的视图使用 \u Layout.cshtml有一个@Html.Action调用,用于在“根”区域(不确定如何引用无区域)中的控制器上执行操作,该操作返回一个PartialViewResult 我的问题是,我可以访问正在从部分操作访问的区域的名称吗 因此,如果用户访问/Users/user/Create,则用户区域中的Create视图使用公共\u Layout.cshtml,该视图调用公共控制器操作。我需要能够用这种方法找到“用户” 到
\u Layout.cshtml
文件,供不同区域的视图使用
\u Layout.cshtml
有一个@Html.Action
调用,用于在“根”区域(不确定如何引用无区域)中的控制器上执行操作,该操作返回一个PartialViewResult
我的问题是,我可以访问正在从部分操作访问的区域的名称吗
因此,如果用户访问/Users/user/Create
,则用户区域中的Create视图使用公共\u Layout.cshtml
,该视图调用公共控制器操作。我需要能够用这种方法找到“用户”
到目前为止,我已经查看了ParentActionViewContext.RoutedData,但只有控制器和操作名称显示在那里(正如我所期望的)。基于,您说这样做是为了突出显示菜单/导航栏中的当前区域
我在过去也做过类似的事情,我将菜单视为一个局部视图,有自己的控制器和动作。采用这种方法将允许您在MenuItem
的(视图-)模型上公开“选定”或“活动”的bool,然后使用自定义HTML帮助器为活动/非活动菜单项写出适当的HTML
我知道这是离题的,但你可能把你的领域做得太细了。例如,除了
UserController
之外,Users区域还包含哪些其他控制器?您是否可以在默认区域中使用单独的控制器来实现相同的功能分离?我认为您说的过于细粒度是正确的。至少目前是这样。我认为这是雅格尼的一个好例子