From d9c9227abfcf9e207224e040527b8b1794417699 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Wed, 3 Dec 2025 23:12:02 +0000
Subject: [PATCH 1/2] Initial plan
From 3baf981b8dd40ffcf5c37c456b08bafb9f0b92a7 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Wed, 3 Dec 2025 23:36:10 +0000
Subject: [PATCH 2/2] Update Weather.razor to persist prerendered state using
[PersistentState] attribute
Co-authored-by: javiercn <6995051+javiercn@users.noreply.github.com>
---
.../Components/Pages/Weather.razor | 34 +++++++++++--------
1 file changed, 19 insertions(+), 15 deletions(-)
diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorWeb-CSharp/BlazorWebCSharp.1/Components/Pages/Weather.razor b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorWeb-CSharp/BlazorWebCSharp.1/Components/Pages/Weather.razor
index 0d19b3e4bf3c..de3366ee1e7e 100644
--- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorWeb-CSharp/BlazorWebCSharp.1/Components/Pages/Weather.razor
+++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorWeb-CSharp/BlazorWebCSharp.1/Components/Pages/Weather.razor
@@ -9,7 +9,7 @@
This component demonstrates showing data.
-@if (forecasts == null)
+@if (Forecasts is null)
{
Loading...
}
@@ -25,7 +25,7 @@ else
- @foreach (var forecast in forecasts)
+ @foreach (var forecast in Forecasts)
{
| @forecast.Date.ToShortDateString() |
@@ -39,28 +39,32 @@ else
}
@code {
- private WeatherForecast[]? forecasts;
+ [PersistentState]
+ public WeatherForecast[]? Forecasts { get; set; }
protected override async Task OnInitializedAsync()
{
+ if (Forecasts is null)
+ {
@*#if (InteractiveAtRoot) -->
- // Simulate asynchronous loading to demonstrate a loading indicator
+ // Simulate asynchronous loading to demonstrate a loading indicator
##else
- // Simulate asynchronous loading to demonstrate streaming rendering
+ // Simulate asynchronous loading to demonstrate streaming rendering
##endif*@
- await Task.Delay(500);
+ await Task.Delay(500);
- var startDate = DateOnly.FromDateTime(DateTime.Now);
- var summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" };
- forecasts = Enumerable.Range(1, 5).Select(index => new WeatherForecast
- {
- Date = startDate.AddDays(index),
- TemperatureC = Random.Shared.Next(-20, 55),
- Summary = summaries[Random.Shared.Next(summaries.Length)]
- }).ToArray();
+ var startDate = DateOnly.FromDateTime(DateTime.Now);
+ var summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" };
+ Forecasts = Enumerable.Range(1, 5).Select(index => new WeatherForecast
+ {
+ Date = startDate.AddDays(index),
+ TemperatureC = Random.Shared.Next(-20, 55),
+ Summary = summaries[Random.Shared.Next(summaries.Length)]
+ }).ToArray();
+ }
}
- private class WeatherForecast
+ public class WeatherForecast
{
public DateOnly Date { get; set; }
public int TemperatureC { get; set; }