有没有一种方法可以从BlazorWebAssembly中的javascript复制FormData接口



我一直在尝试使用Blazor Web程序集发布多部分/表单数据,但没有成功。我尝试过使用MultipartFormDataContent((等,但无法像使用javascript那样发送数据。所附的图像是我希望使用blazor的结果,我需要将一个包含一些额外数据的文件发布到api端点。它接受表单数据。

form id="myForm" name="myForm">
<div>
<label for="username">Enter name:</label>
<input type="text" id="username" name="username">
</div>
<div>
<label for="useracc">Enter account number:</label>
<input type="text" id="useracc" name="useracc">
</div>
<div>
<label for="userfile">Upload file:</label>
<input type="file" id="userfile" name="userfile">
</div>
<input type="submit" onclick="onPost()" value="Submit!">
</form>
</body>
<script>
function onPost(){
let myForm = document.getElementById('myForm');
let formData = new FormData(myForm);
var request = new XMLHttpRequest();
request.open("POST", "example.com");
request.send(formData);
}

</script>

这是html和javascript,所以我基本上是在尝试复制OnPost函数。我只是以样板代码为例。

在我的一个项目中,我们需要发送一个MultipartFormData(通过GraphQl上传文件(。

var rawOperations = "upload"; // Short for the example here
HttpContent operations = new StringContent(rawOperations);
string rawMap = "{ "0": ["variables.input.file"]}";
HttpContent map = new StringContent(rawMap);
using (var formData = new MultipartFormDataContent())
{
formData.Add(operations, "operations");
if (input.File is not null)
{
formData.Add(map, "map");
formData.Add(new StreamContent(input.File.FileStream), "0", input.File.Name);
}
var response = await _httpClient.PostAsync("", formData);
return response;
}

也许这正是你想要的,但我不确定是否"MultipartForDataContent";相当于你的需要。

祝你好运,请随时询问详情:(

最新更新