A simple test for maybe doing events in the backgrounds between pages in Blazor.
1@page "/weather"
2
3<PageTitle>Weather</PageTitle>
4
5<h1>Weather</h1>
6
7<p>This component demonstrates showing data.</p>
8
9@if (forecasts == null)
10{
11 <p><em>Loading...</em></p>
12}
13else
14{
15 <table class="table">
16 <thead>
17 <tr>
18 <th>Date</th>
19 <th aria-label="Temperature in Celsius">Temp. (C)</th>
20 <th aria-label="Temperature in Farenheit">Temp. (F)</th>
21 <th>Summary</th>
22 </tr>
23 </thead>
24 <tbody>
25 @foreach (var forecast in forecasts)
26 {
27 <tr>
28 <td>@forecast.Date.ToShortDateString()</td>
29 <td>@forecast.TemperatureC</td>
30 <td>@forecast.TemperatureF</td>
31 <td>@forecast.Summary</td>
32 </tr>
33 }
34 </tbody>
35 </table>
36}
37
38@code {
39 private WeatherForecast[]? forecasts;
40
41 protected override async Task OnInitializedAsync()
42 {
43 // Simulate asynchronous loading to demonstrate a loading indicator
44 await Task.Delay(500);
45
46 var startDate = DateOnly.FromDateTime(DateTime.Now);
47 var summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" };
48 forecasts = Enumerable.Range(1, 5).Select(index => new WeatherForecast
49 {
50 Date = startDate.AddDays(index),
51 TemperatureC = Random.Shared.Next(-20, 55),
52 Summary = summaries[Random.Shared.Next(summaries.Length)]
53 }).ToArray();
54 }
55
56 private class WeatherForecast
57 {
58 public DateOnly Date { get; set; }
59 public int TemperatureC { get; set; }
60 public string? Summary { get; set; }
61 public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
62 }
63}