身份剃刀页面中的Blazor组件

时间:2019-10-02 20:05:42

标签: asp.net-identity blazor blazor-server-side

我有一个服务器端Blazor应用程序,具有Visual Studio Tempalte中建议的身份验证设置。然后,我添加了身份支架项目。不,我尝试将剃须刀组件插入登录屏幕,以便可以将所有内容保持在同一设计中。

我在页面本身上添加了此内容:

<script src="~/_framework/blazor.server.js"></script>
<Login>
    @(await Html.RenderComponentAsync<ApplySupportTool.Blazor.Pages.Shared.Login>(RenderMode.Server))
</Login>

现在,由于身份页面在IdentityHostingStartup.cs中设置的自己的进程中运行(基于ScaffoldingReadme),我尝试在其中添加Blazor设置内容:

        builder.ConfigureServices((context, services) => { 
        });

        builder.UseStartup<IdentityStartup>();

public class IdentityStartup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddServerSideBlazor();
    }

    public void Configure(IApplicationBuilder app)
    {
        app.UseRouting();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapBlazorHub();
        });
    }
}

但是,一旦这样做,当我尝试在programm.cs中解析我的数据库上下文时,我会得到一个空指针异常。有趣的是,当我在IdentityStartup中只有空的方法主体时,也会发生这种情况。我也尝试将所有数据库初始化代码移至启动过程中,以避免使用空指针,但此站点将无法启动。 我是否必须对此进行其他设置?

1 个答案:

答案 0 :(得分:0)

您缺少一些用于配置DBContext的代码。

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<BloggingContext>(options => options.UseSqlite("Data Source=blog.db"));
}

Configuring a DbContext

中的更多详细信息