在服务器端 Blazor 项目中搭建标识时出错

Posted

技术标签:

【中文标题】在服务器端 Blazor 项目中搭建标识时出错【英文标题】:Error when scaffolding identity in server side Blazor project 【发布时间】:2020-11-12 03:54:16 【问题描述】:

我正在使用为身份验证选择“个人用户帐户”选项创建的服务器端 Blazor 应用程序。

我现在想自定义登录页面,但是当我选择通过脚手架添加身份页面时,我收到以下错误,我不确定从哪里开始进行故障排除。

在内存中编译项目失败

.OnInitializedAynsc() 找不到合适的方法来覆盖

我的项目中的每个页面都列出了上述错误。

【问题讨论】:

你能分享EditAdministrator.razor.cs文件中的OnInitializedAsync方法吗?不需要整个代码,只需要方法定义。 它是服务器端 Blazor,但是您会看到我的问题已经解决。 【参考方案1】:

我认为你的 EditAdministrator 类不是从 ComponentBase 继承的,你的 EditAdministrator.razor 应该从 EditAdministrator.razor.cs 继承

所以示例代码如下:

EditAdministrator.razor 页面类将在顶部显示:

@inherits EditAdministratorBase

还有你的EditAdministrator.razor.cs 班级:

public class EditAdministratorBase : ComponentBase

【讨论】:

非常感谢。问题确实是由于没有从 CompoenentBase 继承。 提醒在 .NET5 中遇到此问题的任何人,您的 .razor 文件不再需要从 .razor.cs 继承,只要命名相同,但您可以需要从ComponentBase 继承,即使你不这样做代码运行良好。 这无疑为我节省了几个小时的时间 - 谢谢!

以上是关于在服务器端 Blazor 项目中搭建标识时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何在 blazor webassembly 项目中对服务器端控制器中的用户进行身份验证?

无法在默认 Blazor 服务器端项目中找到 Razor 页面

如何向服务器端 Blazor 项目添加控制器(而非视图)支持

Blazor(服务器端)在同级组件之间进行通信

将服务器端 Blazor 添加到现有 MVC Core 应用程序

自定义脚本在 Blazor 服务器端工作错误