【发布时间】:2019-06-28 02:49:18
【问题描述】:
您好,我正在尝试使用 FileReader api 从本地存储加载文件。
我已经直接在HTML 页面中测试了js 方法,它可以工作。
但是,当从 Blazor - JSRuntime 调用它时,我收到以下错误:
'Cannot read property 'files' of undefined
TypeError: Cannot read property 'files' of undefined
JS
window.methods = {
fileChange:function(event) {
var file = event.target.files[0];
console.log("file retrieved");
var reader = new FileReader();
reader.onload = function (event) {
console.log(reader.result);
};
reader.readAsText(file);
}
}
CSHTML
<input type="file" onchange="@(async(x)=>await onFileChange(x))"/>
public async Task onFileChange(UIChangeEventArgs ev) {
var str=await JSRuntime.Current.InvokeAsync<string>("methods.fileChange", ev.Value);
}
附言
所以根据错误,该方法被成功调用,但它收到一个未定义的。当我使用InvokeAsync时,我需要做一个强制转换吗?
我需要获取文件的内容。
【问题讨论】:
标签: javascript interop blazor