61 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| @page "/weather"
 | |
| @inject HttpClient Http
 | |
| 
 | |
| <PageTitle>Weather</PageTitle>
 | |
| 
 | |
| <h1>Weather</h1>
 | |
| 
 | |
| <p>This component demonstrates fetching data from the server.</p>
 | |
| 
 | |
| @if (forecasts == null)
 | |
| {
 | |
|     <p>
 | |
|         <em>Loading...</em>
 | |
|     </p>
 | |
| }
 | |
| else
 | |
| {
 | |
|     <table class="table">
 | |
|         <thead>
 | |
|         <tr>
 | |
|             <th>Date</th>
 | |
|             <th>Temp. (C)</th>
 | |
|             <th>Temp. (F)</th>
 | |
|             <th>Summary</th>
 | |
|         </tr>
 | |
|         </thead>
 | |
|         <tbody>
 | |
|         @foreach (var forecast in forecasts)
 | |
|         {
 | |
|             <tr>
 | |
|                 <td>@forecast.Date.ToShortDateString()</td>
 | |
|                 <td>@forecast.TemperatureC</td>
 | |
|                 <td>@forecast.TemperatureF</td>
 | |
|                 <td>@forecast.Summary</td>
 | |
|             </tr>
 | |
|         }
 | |
|         </tbody>
 | |
|     </table>
 | |
| }
 | |
| 
 | |
| @code {
 | |
|     private WeatherForecast[]? forecasts;
 | |
| 
 | |
|     protected override async Task OnInitializedAsync()
 | |
|     {
 | |
|         forecasts = await Http.GetFromJsonAsync<WeatherForecast[]>("sample-data/weather.json");
 | |
|     }
 | |
| 
 | |
|     public class WeatherForecast
 | |
|     {
 | |
|         public DateOnly Date { get; set; }
 | |
| 
 | |
|         public int TemperatureC { get; set; }
 | |
| 
 | |
|         public string? Summary { get; set; }
 | |
| 
 | |
|         public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
 | |
|     }
 | |
| 
 | |
| }
 |