剃刀 - 将独特的标签写入

时间:2012-03-18 12:39:42

标签: asp.net-mvc razor

我正在使用这个基于dom的路由,以便在每个页面上启动特定的javascript http://viget.com/inspire/extending-paul-irishs-comprehensive-dom-ready-execution

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

e.g。

<body data-controller="Home" data-action="Index">

将这种逻辑用于剃刀视图的最佳位置是什么?

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

考虑在基本控制器中覆盖OnActionExecuting并将当前控制器和操作名称注入ViewBag。然后在我的_layout.cshtml中引用ViewBag属性

这是否有意义或是否有更适合此功能的地方?

1 个答案:

答案 0 :(得分:1)

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

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

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