Blazor 在同级(组件)之间传递对象
假设我有这样的第一个组件:Blazor 在同级(组件)之间传递对象,blazor,Blazor,假设我有这样的第一个组件: <EditForm Model="@forecasts" OnValidSubmit="@HandleValidSubmit"> <DataAnnotationsValidator /> <ValidationSummary /> <table class="table"> <thead> <tr> &
<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???
}
}
(事实上,再次获取要编辑的对象将是浪费和无用的…)
如何使用Blazor实现这一点?我知道如何传递值等等,但不知道如何在同级组件之间传递自定义对象,目前还没有找到如何做到这一点…您需要的是
所有组件都有管线,但可以在管线中添加可选参数
@page "/parent"
@page "/parent/{something}"
就像
[Parameter]
public string Something { get; set; }
然后您可以在另一个组件中插入NavigationManager
,并使用它将数据从一个组件传递到另一个组件
@inject NavigationManager NavigationManager
...
NavigationManager.NavigateTo("parent/" + SOME_OBJECT);
请查看。
我想将此对象传递给任何其他组件
,此新组件是否位于您拥有该对象的组件内?我看不到如何将列表中的选定项(通过单击父组件中的一项)通过某些对象
传递给子组件。
@inject NavigationManager NavigationManager
...
NavigationManager.NavigateTo("parent/" + SOME_OBJECT);