【问题标题】:Inject a service in all ASP.Net Core Razor views在所有 ASP.Net Core Razor 视图中注入服务
【发布时间】:2021-09-05 06:52:49
【问题描述】:

如何将服务注入所有 razor 视图?

在需要访问服务(存储本地化文本)的视图中,我可以像这样注入它:

@inject IResourceHelper _resourceHelper

然后我可以像这样使用它...:

<a id="somelink" title="@(_resourceHelper.GetText("somelink-title"))"></a>

工作得很好。但是,由于我在所有视图中都需要这个(几乎),所以我想只注入一次 - 并且在任何地方都可以使用它。

我查看了 _ViewImports.cshtml,它似乎很适合这样的事情 - 我已经添加了一些 taghelper,如下所示:

@addTagHelper MyProject.Internationalization.TagHelpers.*, MyProject.Core

我尝试在那里添加一个注入语句,但它不会使服务在剃刀视图中可用。

如何将服务注入所有 razor 视图?

【问题讨论】:

标签: asp.net-core razor dependency-injection


【解决方案1】:

你只需要添加

@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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-24
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    • 2016-12-01
    • 2018-02-24
    • 2018-10-08
    • 2020-09-15
    相关资源
    最近更新 更多