如何在 RenderFragment Antd Blazor

问题描述

我正在使用 ant design blazor(.net 5.0,antblazor 0.7.4)并尝试通过 RenderFragment 触发 @onclick 按钮渲染:App.razor

   @inject NavigationManager NavigationManager

<Router AppAssembly="@typeof(Program).Assembly" PreferExactMatches="@true">
    <Found Context="routeData">
        <RouteView RouteData="@routeData" DefaultLayout="@typeof(BasicLayout)" />
    </Found>
    <NotFound>
        <LayoutView Layout="@typeof(BasicLayout)">
            <Result Status="404"
                    Title="404"
                    SubTitle="Sorry,the page you visited does not exist."
                    Extra="extra" />
        </LayoutView>
    </NotFound>
</Router>
<AntContainer />
@code
{ 
    private void NavigatetoHome()
    {
        NavigationManager.Navigateto("/");
    }
    RenderFragment extra =@<Button Type="primary" @onclick="NavigatetoHome">Back Home</Button>;

}

但得到错误screen error

如何解决这个问题?非常感谢!

解决方法

@inject NavigationManager NavigationManager

<Router AppAssembly="@typeof(Program).Assembly" PreferExactMatches="@true">
    <Found Context="routeData">
        <RouteView RouteData="@routeData" DefaultLayout="@typeof(BasicLayout)" />
    </Found>
    <NotFound>
        <LayoutView Layout="@typeof(BasicLayout)">
            <Result Status="404"
                    Title="404"
                    SubTitle="Sorry,the page you visited does not exist."
                    Extra="HomeButton(NavigateToHome)" />
        </LayoutView>
    </NotFound>
</Router>
<AntContainer />
@code
{ 
    private void NavigateToHome()
    {
        NavigationManager.NavigateTo("/");
    }
    RenderFragment HomeButton(Action clickAction) => @<Button Type="primary" @onclick="@clickAction">Back Home</Button>;

}