Mudblazor 对话框参考

Mudblazor Dialog Reference

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

谢谢。

Show returns 对打开的对话框的引用!

所以您需要做的就是:

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

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

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

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