2015-01-14 29 views
0

我有一個Html.Action()呈現的局部視圖,我想刷新按鈕單擊。我已經嘗試了AJAX請求,但是我來回傳遞的數據超出了JSON的最大長度。刷新Html.Action

頁面的基本結構是這樣的:

<html> 
    <head> 
    ... 
    </head> 
    <body> 
     <div> 
     @Html.Action("DisplayBox") 
     </div> 
     <div> 
     <input type="button" id="RefreshButton" value="Refresh Box" /> 
     </div> 
    </body> 
</html> 

爲什麼我問的不是一個AJAX請求之外的其他方法的原因是,我在渲染局部是一個PDF對象:

@model byte[] 
@{ 
    String base64EncodedPDF = System.Convert.ToBase64String(Model); 
    Layout = null; 
} 

<object data="data:application/pdf;base64,@base64EncodedPDF" 
    width="900" height="900" type="application/pdf"></object> 

因此,傳遞給局部視圖進行渲染的數據太大而無法放入AJAX請求。點擊按鈕後,我希望能夠執行控制器操作並使結果用新數據更新部分。有沒有辦法做到這一點?

+0

在您的示例中,沒有數據,因此找到解決方案並給我們提供數據很複雜:-) – clement

+0

將PDF保存到文檔根下的服務器上的文件中,然後通過URL包含它,而不是傳遞數據直接到'object'標籤。然後,爲了刷新,您可以簡單地更新URL。 –

回答

0

您必須將HTML鏈接加載到生成PDF或在服務器端生成文件的控制器,將其託管並返回此PDF的URL,然後,javascript可以將用戶重定向到該文件。

我不認爲通過AJAX返回文件槽真的不是一個好習慣!