关闭 Mudblazor 对话框

问题描述 投票:0回答:2

我在 Blazor 应用程序中使用 Mudblazor。我在 ValidSubmit 处理程序内的组件中有以下代码:

public async Task HandleValidSubmit()
{
    DialogService.Show<SavingDialog>("Saving Data");
    await Http.PostAsJsonAsync("api/Client/AddClient", CModel);

    //close the dialog here...
    //DialogService.Close(<need reference here>);
}

DialogService
打开
SavingDialog
,它也是一个组件。 http 调用后,我想关闭对话框。我怎么做?我可以在文档中看到
DialogService.Close(DialogReference dialog)

如何获取我打开的对话框的引用以便将其关闭?

reference dialog blazor mudblazor
2个回答
7
投票

Show
返回对打开的对话框的引用!

所以您需要做的就是:

public async Task HandleValidSubmit()
{
   var dialogRef = DialogService.Show<SavingDialog>("Saving Data");
   await Http.PostAsJsonAsync("api/Client/AddClient", CModel);

   //close the dialog here...
   dialogRef.Close();
}

1
投票

在对话框组件内定义:

 [CascadingParameter] MudDialogInstance MudDialog { get; set; }

然后,您可以调用 Close/Cancel 方法。

    private void Cancel()
    {
        MudDialog.Cancel();
    }

    private void Ok()
    {
        MudDialog.Close(DialogResult.Ok( <any result you need to pass back> ));
    }

我在 MudBlazor 对话框“传递数据”示例中找到了这个(检查 .razor 代码)

© www.soinside.com 2019 - 2024. All rights reserved.