我正在为我的Web应用程序设置一个上载程序,其中包含2个文件输入元素,其中第一个文件输入将获取图像并将其存储到images变量列表中,第二个文件将获取pdf并将其存储到列表中pdf文件变量。
我这样做的方法是将文件对象存储在名为pdfStorage和imageStorage的变量中,以便在填写表单中的必要字段并按确认按钮后将其传递给dotnet core api服务。
将文件对象存储到变量时,在客户端没有问题。但是,一旦我将这些值发送到服务的参数,这些字段就始终显示为空。
我已经在dotnet核心服务中查看了Request.Form,并且看到它在那里。我不明白为什么它没有被填充到ActionResult的参数中。
这是我放置在dotnet核心服务中的代码:
动作结果:
[HttpPost("SaveNewData"),DisableRequestSizeLimit]
[Consumes("multipart/form-data")]
public ActionResult SaveNewData([FromForm]MyModelUpload modelUpload) {
var modelUploaded = modelUpload;
return Ok();
}
Run Code Online (Sandbox Code Playgroud)
参数中的模型:
public class MyModelUpload {
public IFormFile[] imageFile { get; set; }
public string description {get;set;}
public IFormFile[] pdfFileList {get;set;}
public string uploadedBy { get; set; }
public string title { get; set; }
public DateTime? dateEnd {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
这是我用于以角度发送表单数据的测试代码:
SaveNewData(formGroupData) {
let submitData = new FormData();
let pdfFileArray = formGroupData.pdfStorage;
// UPLOAD'S DETAIL
submitData.append('title',formGroupData.title);
submitData.append('description',formGroupData.title);
submitData.append('uploadedBy',formGroupData.uploadedBy); …Run Code Online (Sandbox Code Playgroud) 我在使用angular typescript中的observable获取Web API输出时遇到问题.
我想获取第一个observable返回的值,然后将其值传递给另一个observable.到目前为止,这是我写的.
let output: any;
let output2: any;
_httpClient.get('http://localhost:5000/api/mycontroller')
.subscribe((output_1) => {
output = output_1;
});
alert(output);
_httpClient.get('http://localhost:5000/api/mycontroller2'+output)
.subscribe((output_2) => {
output2 = output_2;
});
alert(output2);
Run Code Online (Sandbox Code Playgroud)
我在订阅的每个observable下面放置一个警报函数,检查每个响应返回的输出.
但是当我执行它并检查警告框中的输出时,它会为每个输出提供未定义的值.
如何强制observable提供来自我的Web API的输出?