在所有 ASP.Net 个核心 Razor 视图中注入服务
Inject a service in all ASP.Net Core Razor views
如何将服务注入所有 Razor 视图?
在我需要访问服务(存储本地化文本)的视图中,我可以像这样注入它:
@inject IResourceHelper _resourceHelper
然后我可以像这样使用它...:[=14=]
<a id="somelink" title="@(_resourceHelper.GetText("somelink-title"))"></a>
工作正常。但是,由于我在所有视图中都需要它(几乎),所以我想只注入一次 - 并且随处可用。
我看向了 _ViewImports.cshtml,这似乎很适合这样的事情——我已经在其中添加了一些标签助手,如下所示:
@addTagHelper MyProject.Internationalization.TagHelpers.*, MyProject.Core
我已经尝试在那里添加一个注入语句,但它并没有使该服务在 razor 视图中可用。
如何将服务注入所有 Razor 视图?
您只需添加
@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>
如何将服务注入所有 Razor 视图?
在我需要访问服务(存储本地化文本)的视图中,我可以像这样注入它:
@inject IResourceHelper _resourceHelper
然后我可以像这样使用它...:[=14=]
<a id="somelink" title="@(_resourceHelper.GetText("somelink-title"))"></a>
工作正常。但是,由于我在所有视图中都需要它(几乎),所以我想只注入一次 - 并且随处可用。
我看向了 _ViewImports.cshtml,这似乎很适合这样的事情——我已经在其中添加了一些标签助手,如下所示:
@addTagHelper MyProject.Internationalization.TagHelpers.*, MyProject.Core
我已经尝试在那里添加一个注入语句,但它并没有使该服务在 razor 视图中可用。
如何将服务注入所有 Razor 视图?
您只需添加
@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>