4

我在我的 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)。如何获得对我打开的对话框的引用以便关闭它?

谢谢。

4

2 回答 2

6

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();
}
于 2021-08-17T11:10:35.290 回答
0

在你的对话框组件中,定义这个:

 [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 代码)

于 2022-02-05T09:55:40.733 回答