我在 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)
。
如何获取我打开的对话框的引用以便将其关闭?
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();
}
在对话框组件内定义:
[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 代码)