Скажем, у меня есть первый компонент, подобный этому:
<EditForm Model="@forecasts" OnValidSubmit="@HandleValidSubmit">
<DataAnnotationsValidator />
<ValidationSummary />
<table class="table">
<thead>
<tr>
<th>Id</th>
<th>Date</th>
<th>Temp. (C)</th>
<th>Temp. (F)</th>
<th>Summary</th>
</tr>
</thead>
<tbody>
@foreach (var forecast in forecasts)
{
<tr>
<td><NavLink href="@($"/Edit/")">@forecast.Id</NavLink></td>
<td>@forecast.Date.ToShortDateString()</td>
<td>@forecast.TemperatureC</td>
<td>@forecast.TemperatureF</td>
<td><InputText @bind-Value="@forecast.Summary"/></td>
</tr>
}
<button class="btn btn-primary" type="submit">Save</button>
</tbody>
</table>
</EditForm>
@code {
List<WeatherForecast> forecasts;
protected override async Task OnInitializedAsync()
{
forecasts = await Http.GetJsonAsync<List<WeatherForecast>>("https://localhost:5000/WeatherForecast/");
}
private async Task HandleValidSubmit()
{
// What should be put there???
}
}
Теперь, поскольку я уже получил список объектов прогноза, я хочу передать один из них любому другому компоненту, например компоненту редактирования. например:
@page "/WeatherForecast/Edit/"
@inject HttpClient Http
@code {
[Parameter]
WeatherForecast Forecast { get; set; }
protected override async Task OnInitializedAsync()
{
forecast = // **How to pass the forecast object here from the previous one** //
}
private async Task HandleValidSubmit()
{
await Http.PostJsonAsync($@"https://localhost:5000/WeatherForecast/", Forecast);
}
}
(Действительно, будет бесполезно и бесполезно возвращать объект для издания…)
Как этого добиться с помощью Blazor? Я знаю, как передать значение и так далее, но не , как передать пользовательский объект между одноуровневыми компонентами , и на данный момент не нашел, как это сделать…