刷新Html.Action

时间:2015-01-14 15:33:12

标签: asp.net-mvc-4

我有一个用Html.Action()渲染的局部视图,我想在按钮点击时刷新。我尝试过AJAX请求,但是我来回传递的数据超过了JSON的最大长度。

页面的基本结构如下:

<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请求中。单击按钮,我希望能够执行控制器操作并使结果使用新数据更新部分。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

您必须加载带有生成PDF的控制器的链接或在服务器端生成文件,托管它并返回此PDF的URL,然后,javascript可以将用户重定向到该文件。

我不认为通过AJAX返回文件真的不是一个好习惯!