asp.net-core - 在所有 ASP.Net Core Razor 视图中注入服务
问题描述
如何将服务注入所有剃刀视图?
在需要访问服务(存储本地化文本)的视图中,我可以像这样注入它:
@inject IResourceHelper _resourceHelper
然后我可以像这样使用它......:
<a id="somelink" title="@(_resourceHelper.GetText("somelink-title"))"></a>
工作得很好。但是,由于我在所有视图中都需要它(几乎),我想只注入一次 - 并且在任何地方都可以使用它。
我查看了 _ViewImports.cshtml,这似乎很适合这样的事情 - 我已经添加了一些 taghelper,如下所示:
@addTagHelper MyProject.Internationalization.TagHelpers.*, MyProject.Core
我尝试在那里添加一个注入语句,但它不会使该服务在剃刀视图中可用。
如何将服务注入所有剃刀视图?
解决方案
你只需要添加
@inject IResourceHelper _resourceHelper
在 Viewimports 中,然后你可以像全局一样使用它
<h1 class="display-4">@(_resourceHelper.Actionname().title)</h1>
作为示例,这对我有用:
@page
@model PrivacyModel
@{
ViewData["Title"] = "Privacy Policy";
}
<h1>@ViewData["Title"]</h1>
<h1 class="display-4">@(MyService.getname().Name)</h1>
推荐阅读
- python - 背景图像未在 tkinter 的类内显示
- android - 尝试运行 Reactive Native 时出错:在 VSC 中的设备上运行 Android
- reactjs - CKEditor5 反应和 ClassicEditor 的自定义构建不再工作
- python - 密集层二分类不能设置为2
- sql - 如何在 Oracle SQL 中过滤掉某些日期
- python - Keras:ArgMax 预测
- r - poly 有反函数吗?
- haskell - 具有相同名称的字段的 2 个不同记录的奇怪类型错误
- python - 时间序列多索引数据帧的重采样
- text - ggplotly hoveron = "fills" 导致工具提示在 geom_sf 地图中重复