You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.2 KiB
49 lines
1.2 KiB
@page "/weather" |
|
@attribute [StreamRendering(true)] |
|
@attribute [OutputCache(Duration = 5)] |
|
|
|
@inject WeatherApiClient WeatherApi |
|
|
|
<PageTitle>Weather</PageTitle> |
|
|
|
<h1>Weather</h1> |
|
|
|
<p>This component demonstrates showing data loaded from a backend API service.</p> |
|
|
|
@if (forecasts == null) |
|
{ |
|
<p><em>Loading...</em></p> |
|
} |
|
else |
|
{ |
|
<table class="table"> |
|
<thead> |
|
<tr> |
|
<th>Date</th> |
|
<th aria-label="Temperature in Celsius">Temp. (C)</th> |
|
<th aria-label="Temperature in Farenheit">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 WeatherApi.GetWeatherAsync(); |
|
} |
|
}
|
|
|