Asp.net mvc Razor-将唯一标记写入<;车身>;

Asp.net mvc Razor-将唯一标记写入<;车身>;,asp.net-mvc,razor,Asp.net Mvc,Razor,我遵循这个基于dom的路由,在每个页面上启动特定的javascript 因此,每次加载页面时,都需要在标记中写入一个唯一的数据属性 e、 g 什么是最好的地方把这个逻辑的剃须刀视图 body标记位于我的母版页(_layout.cshtml)文件中。它需要在每个页面上动态呈现这些内容 正在考虑重写在基本控制器中执行的OnAction,并将当前控制器和操作名称注入ViewBag。然后在my_layout.cshtml中引用ViewBag属性 这是否有意义,或者是否有更适合此功能的位置?您不需要

我遵循这个基于dom的路由,在每个页面上启动特定的javascript

因此,每次加载页面时,都需要在标记中写入一个唯一的数据属性

e、 g


什么是最好的地方把这个逻辑的剃须刀视图

body标记位于我的母版页(_layout.cshtml)文件中。它需要在每个页面上动态呈现这些内容

正在考虑重写在基本控制器中执行的OnAction,并将当前控制器和操作名称注入ViewBag。然后在my_layout.cshtml中引用ViewBag属性


这是否有意义,或者是否有更适合此功能的位置?

您不需要通过
ViewBag
传递数据(尽管它可以工作),而可以通过任何视图(即使在布局中)中的
ViewContext
属性访问当前控制器和操作



对于在
ViewBag
上设置其他“全局属性”,执行
OnActionExecuting
(可能与基类结合使用或使用自定义过滤器)是正确的位置。

您不需要通过
ViewBag
传递数据(尽管它可以工作),您可以通过任何视图(甚至在布局中)中的
ViewContext
属性访问当前控制器和操作,而不是


要在
ViewBag
上设置其他“全局属性”,正确的位置是
OnActionExecuting
(可能与基类结合使用或使用自定义过滤器)

<body data-controller="Home" data-action="Index">
<body 
   data-controller="@(ViewContext.RequestContext.RouteData.Values["controller"])" 
   data-action="@(ViewContext.RequestContext.RouteData.Values["action"])">