c# - 如何正确使用依赖项注入(inject)在 Blazor 组件上包含 ASP.NET Core Identity UserManager?

标签 c# asp.net razor blazor identity

如何正确使用依赖项注入(inject)在 Blazor 组件上包含 ASP.NET Core Identity UserManager?

我将身份搭建到项目中,创建了一个自定义字段,并编辑了身份页面,以便在注册和个人资料页面期间显示和编辑此字段。

由于这些页面主要供登录用户使用,因此我需要构建一个页面供管理员查看和编辑用户。

我创建了一个 Blazor 页面,并从“Index.cshtml.cs”复制了这段代码,该代码也出现在互联网上:

    private readonly UserManager<ApplicationUser> _userManager;
    private readonly SignInManager<ApplicationUser> _signInManager;

    public IndexModel(
        UserManager<ApplicationUser> userManager,
        SignInManager<ApplicationUser> signInManager)
    {
        _userManager = userManager;
        _signInManager = signInManager;
    }

我在这里使用了指南:Micosoft Docs ,创建 Razor 组件来指定该组件的基类。由于它是服务器端 Blazor 应用程序,我认为这应该没问题,但事实并非如此。

我的类(class)代码是:

namespace UsersComponent
{
public class UsersBase : ComponentBase
{
    private readonly UserManager<ApplicationUser> _userManager;

    public UsersBase(UserManager<ApplicationUser> userManager)
    {
        _userManager = userManager;
    }

我在依赖注入(inject)时收到此错误:

    public UsersBase(UserManager<ApplicationUser> userManager)
    {
        _userManager = userManager;
    }

错误是这样的:

CS7036  There is no argument given that corresponds to the required formal parameter 'userManager' of 'UsersBase.UsersBase(UserManager<ApplicationUser>)'

有人可以指出我可以减轻这个错误吗?我将不胜感激。

最佳答案

我假设您在 Program.cs 中使用类似以下内容的内容: builder.Services.AddDefaultIdentity<ApplicationUser>...

要注入(inject) Razor 组件,您需要使用 [Inject]属性上的属性或 @inject ...在 Razor 标记区域。

UsersBase.cs

public class UsersBase : ComponentBase
{
    [Inject] 
    protected UserManager<ApplicationUser>? UserManager { get; set; }
}

关于c# - 如何正确使用依赖项注入(inject)在 Blazor 组件上包含 ASP.NET Core Identity UserManager?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70526965/

相关文章:

c# - Razor 中的动态 HTML 属性格式

c# - 通过 WCF 桥接 NSB

c# - WCF 异常 : The maximum message size quota for incoming messages (65536) has been exceeded

c# - Automapper、Mapper 未初始化。使用正确的配置调用初始化

c# - ASP.NET 中 GridView 中的 PageIndexChanging

javascript - 跨页面更改选定的菜单项类

c# - 如何添加xml命名空间

c# - Winrt Xaml Grid ROw 没有用 * 填充空间

c# - 奇怪,regex.split方法匹配一个null元素

c# - MVC 5 中 @Html.EditorFor(model => model.Name) 中的占位符