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