我在我的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。关闭文档中的(对话框)。我如何获得我打开的对话框的引用,以便我可以关闭它?
谢谢。
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代码)