【问题标题】:Razor - write unique tag into <body>Razor - 将唯一标签写入 <body>
【发布时间】:2012-03-18 12:39:41
【问题描述】:

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

因此需要在每次页面加载时将唯一的数据属性写入标签

例如

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

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

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

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

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

【问题讨论】:

    标签: asp.net-mvc razor


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-19
      • 2017-09-18
      • 1970-01-01
      相关资源
      最近更新 更多