.net - 如何使用区域在 razor 组件库中使用 blazor 服务器端?

标签 .net asp.net-core blazor blazor-server-side

我有一个现有的.net core 3.0 预览版 7 Web 应用程序。我的应用程序主要是 Razor 页面组织成区域,例如。管理员、销售等。如果我将 blazor 组件放在应用程序的根目录下,我就能够成功使用它,但是,如果我将该组件移至 RCL,我可以访问该组件,但它没有响应(单击计数器示例的按钮不会增加计数)。

我希望能够访问 localhost/Admin/RazorPageContainingBlazorComponentlocalhost/Sales/AnotherRazorPageContainingBlazorComponent

我在 Chrome 开发工具中收到此错误: ''' 错误:无法完成与服务器的协商:错误

https://localhost:5000/myfeature/_blazor/negotiate 404 '''

我相信这是由 signalR 集线器映射到 https://localhost:5000/ 引起的,但我不确定如何添加额外的 blazor hub 映射或如何更改 blazor.server.js 以使用根 hub。

最佳答案

在深入研究 signalR 文档和 blazor.server.js 文件后,我找到了一个解决方案。将以下代码添加到布局文件中可将 signalR hub 配置为使用绝对路径而不是相对路径。

<script src="~/_framework/blazor.server.js" autostart="false"></script>
<script>
    Blazor.start({
        configureSignalR: function (builder) {
            builder.withUrl("/_blazor");
        }
    });
</script>

这允许使用区域路由直接在 razor 类库中使用 razor 组件。

关于.net - 如何使用区域在 razor 组件库中使用 blazor 服务器端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57366355/

相关文章:

c# - 存储的字符串、区域设置资源文件、使用 C# 6 插值?

.net - F# : Is it okay to use mutable .Net List 将元素添加到同一列表

asp.net-core - Asp.Net Core 中的 HttpContext.Features 与 HttpContext.Items

ios - 为什么 Blazor wasm 项目没有在 iPAd 和 iPhone 上的 IOS 上加载

c# - 如何使存储为 C# 字符串的 HTML 元素正确显示?

c# - 比较两个 Linq 对象

c# - 更改为通用接口(interface)对性能的影响

c# - 为什么 DefaultAzureCredential 尝试在本地计算机上使用 ManagedIdentityCredential?

sql - 尚未为此 DbContext .NET Core 与 SQL Server 配置数据库提供程序

blazor - 如何将 List<string> 作为参数传递给 blazor 中的子组件?