Javascript 如何将2个文档(PDF和XFDF)从C#.NET核心WebAPI控制器返回到SPA?

Javascript 如何将2个文档(PDF和XFDF)从C#.NET核心WebAPI控制器返回到SPA?,javascript,c#,single-page-application,asp.net-core-webapi,multipart,Javascript,C#,Single Page Application,Asp.net Core Webapi,Multipart,我有一个水疗中心和一个网络API 用户单击SPA上的链接,该链接用于下载2个文件(PDF和XFDF) 我有这个WebAPI操作(来源:) 在水疗中心我做这个 window.location.href = "/api/files/both/5"; 结果呢。在浏览器中显示此JSON { "Version": "1.1", "Content": [{ "Headers": [{ "Key": "Content-Typ

我有一个水疗中心和一个网络API

用户单击SPA上的链接,该链接用于下载2个文件(PDF和XFDF)


我有这个WebAPI操作(来源:)

在水疗中心我做这个

window.location.href = "/api/files/both/5";

结果呢。在浏览器中显示此JSON

{
    "Version": "1.1",
    "Content": [{
            "Headers": [{
                    "Key": "Content-Type",
                    "Value": ["application/vnd.adobe.xfdf"]
                }
            ]
        }, {
            "Headers": [{
                    "Key": "Content-Type",
                    "Value": ["application/pdf"]
                }
            ]
        }
    ],
    "StatusCode": 200,
    "ReasonPhrase": "OK",
    "Headers": [],
    "TrailingHeaders": [],
    "RequestMessage": null,
    "IsSuccessStatusCode": true
}
响应头是(注意content type=application/json)

原始请求标头(如果感兴趣)


问题

  • 如何编程操作方法以返回2个不同类型的文件

  • 不能在同一请求中返回两个不同的文件。您可以将内容嵌入到包含两个内容的json对象中,但是您必须找到一种显示文件的方法,或者您可以返回这两个文件的URI,然后分别请求这两个文件

    就我个人而言,我会选择后一种方法,因为这是最简单、最灵活的方法,具体取决于您对文件的处理计划


    希望这对您有所帮助

    您不能在同一请求中返回两个不同的文件。您可以将内容嵌入到包含两个内容的json对象中,但是您必须找到一种显示文件的方法,或者您可以返回这两个文件的URI,然后分别请求这两个文件

    就我个人而言,我会选择后一种方法,因为这是最简单、最灵活的方法,具体取决于您对文件的处理计划


    希望对您有所帮助。

    另一个选项是压缩两个/多个文件并将其作为单个文件返回。

    另一个选项是压缩两个/多个文件并将其作为单个文件返回

    {
        "Version": "1.1",
        "Content": [{
                "Headers": [{
                        "Key": "Content-Type",
                        "Value": ["application/vnd.adobe.xfdf"]
                    }
                ]
            }, {
                "Headers": [{
                        "Key": "Content-Type",
                        "Value": ["application/pdf"]
                    }
                ]
            }
        ],
        "StatusCode": 200,
        "ReasonPhrase": "OK",
        "Headers": [],
        "TrailingHeaders": [],
        "RequestMessage": null,
        "IsSuccessStatusCode": true
    }
    
    HTTP/1.1 200 OK
    x-powered-by: ASP.NET
    content-length: 290
    content-type: application/json; charset=utf-8
    server: Microsoft-IIS/10.0
    request-context: appId=cid-v1:e6b3643a-19a5-4605-a657-5e7333e7b99a
    date: Tue, 04 Feb 2020 11:31:49 GMT
    connection: close
    Vary: Accept-Encoding
    
    Host: localhost:8101
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Accept-Language: en-US,en;q=0.5
    Accept-Encoding: gzip, deflate
    Referer: http://localhost:8101/
    DNT: 1
    Connection: keep-alive
    Cookie: MySession=....
    Upgrade-Insecure-Requests: 1