问题标签 [blazor-server-side]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
171 浏览

asp.net - 在 Docker 中托管 Razor 组件的建议

我正在使用 1 月 29 日发布的 ASP.NET Core 3.0 Preview2 开发 Razor Components 项目。我需要将它托管在 (Linux) Docker 容器中。有没有人设法让这个工作?

0 投票
1 回答
10161 浏览

c# - 从任意线程调用 StateHasChanged() 是否安全?

StateHasChanged()从任意线程调用是否安全?

让我给你一些背景。想象一个服务器端 Blazor/Razor 组件应用程序,您拥有:

  • 从任意线程NewsProvider引发事件的单例服务。BreakingNews
  • News.cshtml获取服务注入并订阅BreakingNews事件的组件。引发事件时,组件更新模型并调用StateHashChanged()

新闻提供者.cs

新闻.cshtml

启动.cs

它显然有效,但我不知道是否StateHasChanged()是线程安全的。如果不是,我怎么能StateHashChanged()安全地打电话?有没有类似的东西Control.BeginInvoke?我应该使用SyncrhonizationContext.Post吗?

0 投票
3 回答
2400 浏览

c# - Blazor 中的 Razor 视图引擎(在运行时将 blazor 组件转换为 html 字符串)

我正在尝试在服务器端 Blazor 中生成 pdf。我使用 DinkToPdf 作为外部库将 HTML 字符串转换为 pdf。但是我在将 blazor 组件转换为 HTML 字符串时遇到了麻烦。

有一种方法可以使用 Razor ViewEngine 将 Razor 模板呈现为字符串。从这个网站http://fizzylogic.nl/2017/08/03/how-to-generate-pdf-documents-in-asp-net-core/

我需要将 ObjectSettings.HtmlContent 修改为我的 blazor 组件 html 字符串。

0 投票
2 回答
5432 浏览

c# - 服务器端 Blazor 应用程序 httpclient 调用未到达我的 Web API 控制器类

我正在尝试在 .Net Core 3.0 预览版中使用 Blazor 服务器端应用程序(RazorComponents)创建多人游戏。我的服务器项目中有一个 SQL lite 数据库和数据访问层来存储游戏信息。我有一个控制器类,也在服务器项目中,使用数据访问层从数据库返回对象。我在 App 项目中的 cshtml 页面正在进行 api 调用(使用注入的 HttpClient),试图路由到我的控制器,但它没有到达服务器。

我一直在尝试不同的 Http 客户端调用,但似乎都没有到达控制器。我觉得我遗漏了一些明显的东西,或者配置不正确。我没有扎实的 Razor/MVC 背景,所以这对我来说有点难以解决。为了测试,我正在尝试调用一个返回字符串的简单方法

在 App.Game.cshtml @functions { } 部分:

在 Server.Controllers.GameController 中:

我的 Server.Startup 文件注册 MVC 和 Http 服务,如下所示:

当调用 SaveGame() 方法并执行客户端调用时,我在输出中看到:

Microsoft.AspNetCore.Hosting.Internal.GenericWebHostService:信息:请求开始 HTTP/1.1 GET http://localhost:59682/api/Game/Test
Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware:信息:发送文件。请求路径:'/index.html'。物理路径:'{我的游戏路径}.Server\wwwroot\index.html'

所以它似乎没有正确路由到控制器。我一直在谷歌上搜索其他人是如何做到这一点的,看来我的做法是正确的。有人知道我错过了什么吗?

我一直在关注这样的教程:http: //learn-blazor.com/architecture/rest-api/ https://medium.freecodecamp.org/how-to-create-an-application-using-blazor-and -entity-framework-core-1c1679d87c7e

0 投票
1 回答
852 浏览

asp.net-core-webapi - 在控制器中使用 [FromBody] 属性时,Blazor 服务器端应用程序(Razor 组件)中的 InputFormatters 为空

我正在使用 Asp.Net Core 3.0 预览版中的服务器端 blazor(Razor 组件)开发网络游戏。我有一个控制器类,用于将游戏数据保存到服务器,但是每当我使用有效的 JSON 正文发出发布请求时,控制器无法格式化请求正文,因为它无法从上下文中找到任何 IInputFormatter。

我已经能够在不使用 [FromBody] 属性的情况下执行简单的 GET 请求和 POST,因此我知道我的控制器路由正在工作。但是每当我尝试使用 HttpClient SendJsonAsync 或 PostJsonAsync 方法并尝试使用 [FromBody] 属性读取 JSON 时,我都会收到以下错误:

System.InvalidOperationException:“Microsoft.AspNetCore.Mvc.MvcOptions.InputFormatters”不能为空。从正文绑定至少需要一个“Microsoft.AspNetCore.Mvc.Formatters.IInputFormatter”。

我还直接将 Microsoft.AspNetCore.Mvc.Formatters.Json 安装到我的项目中,但没有运气。

我在我的 Server.Startup 类中注册并将 mvc 添加到我的服务中

我的控制器类和方法:

我的 Game.cshtml 页面中的客户调用:

完整的堆栈跟踪:

阅读文档告诉我 JsonFormatters 默认包含在内。我已经使用 Fiddler 验证了我的调用具有正确的内容类型和有效的 JSON。我想如果它无法从上下文中找到任何 InputFormatters,我一定没有正确配置服务,但我还没有找到其他人遇到这个问题,我不知道下一步该尝试什么。任何帮助将不胜感激,谢谢

0 投票
1 回答
697 浏览

asp.net - 如何将数据从子页面传递到调用@Body 的页面?

所以我有一个带有标题栏的 MainLayout,我想要一个允许页面将标题栏设置为任何它想要的参数。所以mainlayout通过@Body调用页面,我很困惑如何将数据通过body传递到mainlayout以更新标题栏。

任何帮助将不胜感激!

所以我想做的是向下传递 TitleValue,让页面根据发生的情况更新它,并用新值更新标题栏。

如果这不是这样做的方法,或者我遗漏了一些东西,那么任何帮助都会很棒:)

0 投票
2 回答
3629 浏览

blazor-server-side - Blazor 组件库中的 CSS 未加载

在我的 razor 组件项目中,我正在向解决方案添加一个 blazor 组件库。我可以从我的 .app 项目调用组件库中的组件,但似乎 .css 和其他文件没有从 Blazor 组件库加载。我查看了组件库 .csproj 文件,但无法弄清楚缺少什么:

0 投票
1 回答
2143 浏览

blazor-server-side - Websocket 以状态码关闭:1006 问题

我使用 Razor 组件(Blazor 服务器端),当我的连接丢失并再次出现时,它给出“Websocket 已关闭状态代码:1006”错误并且在页面刷新之前不起作用。

如果出现此错误,我想知道如何建立连接?

0 投票
3 回答
2569 浏览

blazor-server-side - Razor 组件,子组件回调中的值更改未反映在 UI 中

在 Visual Studio Enterprise 2019 Preview 3.0 中试用 Razor 组件模板项目。

从子组件的回调中更新 UI 绑定元素时,更改不会按预期反映在 UI 中。

父组件,将变量“状态”绑定到 UI:

子组件,对父组件执行回调:

回调按预期执行,但 UI 没有更新!关于如何解决这个问题的任何建议?

0 投票
0 回答
245 浏览

session-state - 服务器端虚拟 DOM,Blazor 中的会话状态开销是多少?

在提交 Razor-Components 项目之前,我需要了解 Razor-Components 架构强加了哪些额外的服务器会话状态存储。我知道虚拟 DOM 是 Blazor 工作方式的基本元素,虚拟 DOM 可能是一个合理的概念,例如它是 ReactJS 的基础元素。

我担心的是,当所有 Blazor 都在服务器端运行时,虚拟 dom 也必须托管在服务器端,以便 Blazor 框架将 html delta 命令分派到客户端浏览器。

对于非平凡的 SPA 应用程序,我很想听听每个客户端连接的虚拟 dom 的可能大小的任何估计。

作为比较点,在设计常规 .NET Webapi 应用程序时,我尝试将用户会话状态保持在远低于 1k 的大小。