Tit*_*off 7 asp.net-mvc-scaffolding asp.net-identity asp.net-core duende-identity-server angular13
所以。我使用 ASP.NET Core 模型和 Angular使用 Visual Studio Pro 2019 (v16.11.9) 创建了一个全新的项目。我将身份验证选项设置为“个人用户帐户”。
我得到了一个使用Angular 8、ASP.NET Core 3.1(没有深入研究为什么这些版本,只是接受了事实)、Entity Framework和Identity 的工作脚手架项目,这正是我想要的,除了框架版本。我想使用最新的Angular 13和ASP.NET Core 6.0。
所以我开始逐个版本升级我的 Angular 版本,检查每一步应用程序是否仍然有效。到了 Angular 13,没有发现问题,身份验证工作正常。
然后,我按照非常复杂(此处具有讽刺意味)的 Microsoft 教程来更新您的 .NET Core 版本:从 ASP.NET Core 3.1 迁移到 6.0并更新.csproj。和繁荣,当我尝试访问应用程序受身份验证保护的部分时,我收到以下错误:

InvalidOperationException: The default Identity UI layout requires a partial view '_LoginPartial' usually located at '/Pages/_LoginPartial' or at '/Views/Shared/_LoginPartial' to work. Based on your configuration we have looked at it in the following locations: /Areas/Identity/Pages/Account/_LoginPartial.cshtml /Areas/Identity/Pages/_LoginPartial.cshtml /Areas/Identity/Pages/Shared/_LoginPartial.cshtml /Areas/Identity/Views/Shared/_LoginPartial.cshtml /Pages/Shared/_LoginPartial.cshtml /Views/Shared/_LoginPartial.cshtml.
Run Code Online (Sandbox Code Playgroud)
我们可以通过将以下内容添加到 csproj 文件来解决该问题:
<PropertyGroup>
<UseRazorSourceGenerator>false</UseRazorSourceGenerator>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
添加此内容的原因是我在构建过程中收到以下消息:1>CSC:警告 CS8785:生成器“RazorSourceGenerator”无法生成源。它不会对输出产生影响,因此可能会出现编译错误。异常的类型为“NullReferenceException”,消息为“对象引用未设置到对象的实例”。
从另一个来源我发现,添加此属性组可以提供更详细的信息,但它解决了未编译的视图:https ://developercommunity.visualstudio.com/t/vs-2022-mvc-core-does-不生成预编译-vie/1577269#T-N1578977
目前还不清楚这是否是一个好的最终解决方案。您可以在此处关注我与 .net 团队的讨论:https://github.com/dotnet/aspnetcore/issues/41277
当您移动_LoginPartial所在的文件夹时,可能会出现上述错误,找不到相应的视图。
如果您通过不带扩展名的名称引用局部视图,那么它将在以下位置查找。
/Areas/<Area-Name>/Views/<Controller-Name>
/Areas/<Area-Name>/Views/Shared
/Views/Shared
/Pages/Shared
Run Code Online (Sandbox Code Playgroud)
我发现您可以尝试在 ASP.NET Core 中使用 Areas。
参考:如何使用 mvc 将 Areas 文件夹移动到 DotNet Core 中的子文件夹
| 归档时间: |
|
| 查看次数: |
3571 次 |
| 最近记录: |