Standard2.1を使用したClient-SideのBlazorからのJavaScriptでファイル選択の情報を返したい

実現したいこと

Blazor(c#側)よりJSRuntimeを使って、Javascript関数(ファイル選択)を呼び出し、取得したファイル情報をBlazor(c#側)に返したいです。

発生している問題・エラーメッセージ

ファイル選択は表示されますが、ファイル選択でファイル選択する前にBlazor(c#側)のJavascript呼び出し処理の次のステップへ進んでしまい、ファイル情報が取得できない。ファイル選択していないのに、ファイル名なしのShowDialogが表示される。

該当のソースコード

JavaScript側
//ファイルを開く
function showOpenFileDialog() {
// var aaa;
const createOpenFileDialog = () => {
return new Promise(resolve => {
const input = document.createElement('input');
input.type = 'file';
input.accept = '.xlsx';
input.onchange = event => { resolve(event.target.files[0]); };
input.click();
});
};
/*
aaa = "ok!ok!";
return aaa;
*/
createOpenFileDialog()
.then((response) => {
return response.name;
});

Blazor(c#側)
var fileName = await JSRuntime.InvokeAsync<string("showOpenFileDialog");
await dialogService.ShowDialog<bool>(DialogType.Note, "確認", fileName);

試したこと

コメントアウトのaaaだけだと確認メッセージに"ok!ok!"が表示される

補足情報(FW/ツールのバージョンなど)

Standard2.1を使用したClient-SideのBlazor

コメントを投稿

0 コメント