我有一个用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请求中。单击按钮,我希望能够执行控制器操作并使结果使用新数据更新部分。有没有办法做到这一点?
答案 0 :(得分:0)
您必须加载带有生成PDF的控制器的链接或在服务器端生成文件,托管它并返回此PDF的URL,然后,javascript可以将用户重定向到该文件。
我不认为通过AJAX返回文件真的不是一个好习惯!