如何在Blazor PWA启动时创建对象



我正在开发一个Blazor PWA,它指导用户完成整个过程并收集数据。我编写了类MyData,并创建了它的一个对象,其中收集了第一个数据。但实际上,我希望在启动时创建对象。到目前为止,我所拥有的和有效的:
MyApp/Csharp/MyData.cs

namespace MyApp.Csharp
{
public class MyData
{
public decimal Data1 { get; set; } = -99.9m;
}
}

MyApp/Pages/Input.rarzor

@using MyApp.Csharp
@code{MyData myData = new(); }
<div>
<input type="number" @bind="myData.Data1" />
</div>

如何在启动时创建myData?我试图在Main((中移动CCD_ 2,但这导致了错误";名称myData在当前上下文中不存在";。我还创建了一个文件App.razor.cs,并将代码放在那里,但也无法处理相同的错误消息。

如果整个PWA只需要一个实例,那么最好的解决方案是静态类。

public static class MyData
{
public static string MyData1;
}

在我正在构建的PWA中,我也将静态类用于全局数据。在呈现第一页之前,可以在Program.cs中的Main方法中设置属性。

如果加载要存储在类中的数据需要很长时间,例如调用Web API,则不应在Program.cs中加载,而应在Index页(PWA的主页面(的OnAfterRender(当firstRender为true时(中加载。理想情况下,您必须显示某种加载正在进行的通知。

最新更新