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; }