実現したいこと
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 コメント