【发布时间】:2021-05-10 14:09:26
【问题描述】:
我使用Summernote 作为我的文本编辑器。我想将图像保存在我的 API 目录中。因此,当我在 JavaScript 文件中获取文件时,如何将其发送到 Blazor(我不想通过 jQuery ajax 直接将其发送到 API)。
window.JsFunctions = {
LoadSummerNote: function (dotNetObject) {
$('.summerText').summernote({
height: 300,
minHeight: 100,
maxHeight: null,
focus: false,
callbacks: {
onImageUpload: function (files) {
//data = files[0]
data = new FormData();
data.append("file", files[0]);
dotNetObject.invokeMethodAsync('UploadEditorImage', data)
}
}
});
}
}
我的问题出在Blazor 部分,我无法让文件继续我想做的事情。
[JSInvokable]
public async Task UploadEditorImage(IBrowserFile file)
{
// ...
// var result = await UploadService.Upload(file, allowedExtensions, maxFileSize, uploadFolder);
// ...
}
我收到这样的错误
未捕获(承诺)错误:System.NotSupportedException: 不支持接口类型的反序列化。类型 'Microsoft.AspNetCore.Components.Forms.IBrowserFile'。路径:$ | 行号:0 | BytePositionInLine: 1. ---> System.NotSupportedException:接口类型的反序列化是 不支持。类型 'Microsoft.AspNetCore.Components.Forms.IBrowserFile'。
【问题讨论】:
-
错误告诉你它不知道如何反序列化一个接口(因为它怎么知道你想要构造哪个对象,我猜)。您是否尝试过使用具体类型?
-
@Nikki9696 是的,我试过了,但我收到的是 null 。
-
@Matze 这与我的问题无关。我的问题与通常的上传不同。