【问题标题】:Blazor app with ASP.NET Identity UI shared layuout template具有 ASP.NET 标识 UI 共享布局模板的 Blazor 应用
【发布时间】:2021-01-14 05:57:20
【问题描述】:

我有一个带有 MainLayout.cshtml 文件的默认 Blazor 应用程序。创建如下;

- MyBlazorApp/
-- Shared/
--- MainLayout.cshtml

在这个应用程序中,我构建了各种 ASP.NET 身份页面(登录、注销等),它们有自己的结构和一个 _layout.cshtml 模板,创建如下;

- MyBlazorApp
-- Areas/
--- Identity/
---- Pages/
----- _ViewStart.cshtml  <-- references "/Pages/Shared/_Layout.cshtml"
-- Pages/
--- Shared/
---- _layout.cshtml

我想要一个两个应用程序都使用的模板文件。应该怎么配置?

【问题讨论】:

    标签: asp.net-identity blazor asp.net-core-3.1


    【解决方案1】:

    我认为这是不可能的。 Blazor 的布局,MainLayout 是一个文件扩展名为.razor(MainLayout.razor)的组件。另一方面,_Layout.cshtml 是 Razor 页面...因为您可以在 Razor 页面中嵌入 razor 组件,所以您可以在 _Layout.cshtml 中嵌入 MainLayout。但是这个...

    【讨论】:

    • 你知道 .NET5 有什么改变吗?我发现很难相信您无法通过大量重复工作将像 Identity 这样基本的东西集成到 Blazor 中。
    • 顺便说一句,您个人资料页面中的电子邮件地址似乎不再有效。弹回一个错误,说该地址在域中不存在。淘气并向您发送私人电子邮件是我的错!把你的电子邮件放在那里是你的错! ?
    • "你知道 .NET5 有什么改变吗?"与.Net 的版本无关。他希望拥有一个由 Blazor 和 Razor Pages of Identity UI 共享的文件。这本质上是不可能的,因为涉及到两种类型的框架。您可以在 Razor 页面中嵌入 Blazor 组件,例如,App 组件嵌入在 Razor 页面页面 (_Host.cshtml) 中,并呈现为 Blazor 应用程序。但是你不能反过来。
    • 您不能在 Blazor 组件中嵌入 Razor 页面页面,因此无法创建组件或两种类型的框架可以共享的任何内容。
    • “我很难相信你不能通过大量的重复工作将像 Identity 这样基本的东西集成到 Blazor 中”它与 Identity 或其他 API 无关。根据您的应用程序的结构,您可能会做很多事情,但同样,您无法将 Razor Pages 页面集成到您的组件中。您可以通过使用锚元素或 NavigationManger.NavigateTo 导航出 SPA 空间来访问 Razor Pages 页面,例如登录或注销,但这会将您带出 SPA 边界。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    • 2021-02-20
    • 1970-01-01
    • 2015-12-19
    • 2021-08-03
    • 1970-01-01
    相关资源
    最近更新 更多