如何从服务器端 Blazor 应用程序中的 Blazor 组件调用 Razor 页面,而不导致页面刷新



我正在开发一个 Blazor 服务器端应用程序,我需要包含 cookie 身份验证。 我们创建了一个自定义登录页面组件,但为了创建 cookie,我需要调用 Razor 页面来创建 cookie。

有没有办法在不刷新页面的情况下调用 razor 页面。

我尝试使用 UriHelper.NavigateTo,但不适用于非 Blazor 组件路由。

然后我尝试使用 Javascript 调用来执行 window.location,但问题是这会导致浏览器刷新,使我的所有实例都重新创建(如 AppState、HttpClient),因此这些实例中的所有信息都会丢失(如 httpclient 标头等)。

我希望调用 razor 页面来创建 cookie,以便 httpclient 和 appstate 范围的实例保留其值。

我们尝试了标识脚手架,但它在最新的预览版 8 中存在错误

我已经看到了那个错误,很容易纠正。你现在可以搭建脚手架了。 否则,

我们

遇到的唯一问题是我们找不到自定义平淡无奇的登录和注册页面的方法。

也许你可以忍受那些"平淡无奇的页面",直到九月底发布?


这些步骤基于具有"个人用户帐户"的 Preview8 服务器端项目

注意:在此之前和之后在 Git 中提交更改是个好主意

  • 在"启动:// endpoints.MapBlazorHub<App>(selector: "app");"中暂时禁用此行
  • 运行脚手架,添加所需的任何页面
  • 再次取消注释endpoints.MapBlazorHub()
  • 删除Pages/_ViewStart.cshtml
  • 修复Pages/Shared/_Layout.cshtml,第一行缺少@using
  • 修复Pages/Shared/_Loginpartial.cshtml,第二行缺失@inject

编译和运行

最新更新