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