Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 从共享局部视图访问区域名称_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

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区域还包含哪些其他控制器?您是否可以在默认区域中使用单独的控制器来实现相同的功能分离?

我认为您说的过于细粒度是正确的。至少目前是这样。我认为这是雅格尼的一个好例子