【问题标题】:Where do I put the blazor.server.js script tag in a RazorPages app?在 RazorPages 应用程序中,我应该将 blazor.server.js 脚本标记放在哪里?
【发布时间】:2020-02-22 01:14:05
【问题描述】:

现在我将它放在 _Layout.cshtml 布局页面的底部,其他页面都使用它。我遇到的问题是,身份区域下的页面在导航到身份页面时会在控制台中引发错误

POST https://localhost:5001/Identity/Account/_blazor/negotiate 404

blazor.server.js:1 Uncaught (in promise) Error: Cannot send data if the connection is not in the 'Connected' State.

这些错误让我觉得我在 RazorPages 应用中启用 Blazor 服务器的方式有问题。

所以我想知道,我是否应该在实际使用 Blazor 的页面上只使用 blazor.server.js 脚本?有没有办法让它在布局中似乎不可用的区域可用?

【问题讨论】:

  • 您是否在 Razor Pages 应用程序中呈现 Razor 组件?如果你这样做,请显示相关代码...
  • 不要忘记在启动类中添加 Blazor 服务
  • 是的,我使用剃须刀组件。它们在它们存在的页面上呈现并正常运行。这更多是关于如何正确包含 blazor.server.js 脚本或对其进行配置以便项目中的所有区域正确加载它的问题。
  • 还要注意Identity区域不存在razor组件,但是控制台还是会抛出这个错误。

标签: asp.net-core razor-pages blazor blazor-server-side


【解决方案1】:

我相信这篇文章回答了我的问题:

How do I use blazor server-side inside a razor component library using areas?

默认情况下,SignalR 服务使用相对路径,无法在区域内找到 _blazor/negotiate 终结点。 _Layout 中建议的代码更改将使其使用绝对路径并规范化为 /_blazor/negotiate 页面结构中的任何位置。

【讨论】:

    【解决方案2】:

    我知道这已经晚了,但它可以帮助其他人。

    我在尝试将 blazor 添加到现有应用时遇到此错误。

    我补充说:

    <base href="~/" />
    

    在共享文件夹中找到的 _layout.cshtml 文件的 head 标签的末尾。

    enter image description here

    【讨论】:

      猜你喜欢
      • 2016-09-20
      • 2021-05-07
      • 1970-01-01
      • 2011-02-17
      • 2011-03-28
      • 1970-01-01
      • 2017-02-13
      • 1970-01-01
      • 2010-09-05
      相关资源
      最近更新 更多