通过AJAX beginForm在MVC部分视图中显示PDF文件

时间:2019-06-04 15:00:39

标签: ajax pdf model-view-controller partial-views

我在MVC视图中有此表单,该表单应该获得一对文档的编号和日期,以便在同一页面上的单独预览窗口中显示该文档:

@using (Ajax.BeginForm("GetProtocollo", new AjaxOptions {
    HttpMethod = "GET",
    OnBegin = "GetProtocolloBegin",
    OnSuccess = "GetProtocolloSuccess",
    OnFailure = "GetProtocolloFailure",
    UpdateTargetId = "AnteprimaDocumento"
}))
{ // code here }

目标元素采用最简单的形式

<div id="AnteprimaDocumento"></div>

表单调用一个操作方法,该方法从WCF服务获取实际的pdf文件

public FileStreamResult GetProtocollo(// params)
{
    // check params

    ProtocolReaderClient client = new ProtocolReaderClient();
    var prot = client.GetProtocol(// params);
    if(!prot.Error)
    {
        Stream memStream = new MemoryStream(prot.Document.RawContent);
        return new FileStreamResult(memStream, "application/pdf");
    }

    // deal with errors
}

但这是我在预览窗口中看到的:

enter image description here

如何显示实际的PDF?

另一方面,尽管服务本身具有“正常”的响应时间(1-3秒,但超出了我的要求),但整个请求仍需要非常非常长的时间才能完成(大约90秒),而我不明白为什么。

enter image description here

谢谢, 戴维德。

0 个答案:

没有答案