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

2023-12-07

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

有没有办法在不进行页面刷新的情况下调用剃刀页面。

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

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

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


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

我见过这个错误,很容易纠正。你现在可以搭脚手架了。否则,

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

也许您可以忍受这些“乏味的页面”直到九月底发布?


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

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

  • 在启动中暂时禁用此行:// endpoints.MapBlazorHub<App>(selector: "app");
  • 运行脚手架向导,添加您想要的任何页面
  • 取消注释endpoints.MapBlazorHub()再次排队
  • remove Pages/_ViewStart.cshtml
  • fix Pages/Shared/_Layout.cshtml,第一行缺少一个@using
  • fix Pages/Shared/_Loginpartial.cshtml,第二行缺失@inject

编译并运行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从服务器端 Blazor 应用程序中的 Blazor 组件调用 razor 页面而不导致页面刷新 的相关文章

随机推荐