我的网页上有一个链接,点击后我正在尝试生成一个PDF文档,并在浏览器上显示“打开-保存”提示框。
我的HTML(ReactJS组件)具有以下代码,其中onclick
调用_getMyDocument
函数,该函数然后调用Webapi方法。
<div className="row">
<a href="#" onClick={this._getMyDocument.bind(this)}>Test Link</a>
</div>
_getMyDocument(e) {
GetMyDocument(this.props.mydata).then(()=> {
}).catch(error=> {
});
我的控制器有以下代码
[HttpPost]
[Route("Generate/Report")]
public IHttpActionResult GetMyReport(MyData myData)
{
byte[] myDoc = MyBusinessObject.GenerateMyReport(myData);
var result = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ByteArrayContent(myDoc)
};
result.Content.Headers.ContentDisposition =
new ContentDispositionHeaderValue("attachment")
{
FileName = "MyDocument.pdf"
};
result.Content.Headers.ContentType =
new MediaTypeHeaderValue("application/octet-stream");
var response = ResponseMessage(result);
return response;
}
目前所有代码都在执行,但我没有收到PDF文件下载提示。我在这里做错了什么?
从ajax调用成功的响应对象如下所示
MyBusinessObject.GenerateMyReport(myData);
是在做什么?它是否正在向另一个应用程序发出请求? - Brett Caswell