我有一个由 javascript 动态加载的标记对象。此标签在 jquery 发布后加载:
$.post('@Url.Action("ShowCredential", "ManageCredentials")',
$(form).serialize(), function(url) {
document.getElementById("credential_preview").innerHTML = "<object id='credencial_atual' type='application/pdf' classid='clsid:CA8A9780-280D-11CF-A24D-444553540000' width='250' height='420' style='border: 1px solid'> <param name='src' value='" + url + "#navpanes=0&scrollbar=0&zoom=100%' /></object>";
$("#preview_popup").show();
});
Obs:我用我的表单加载表单变量。
在我的操作“ShowCredential”的代码隐藏中,我在 byte[] 中加载一个 pdf 并存储在我的用户会话中:
[HttpPost]
public string ShowCredential(/* the attributes to help to load the pdf */)
{
// Loading my pdf...
Session.User.CurrentPDF = // set the pdf loaded
UrlHelper urlHelper = new UrlHelper(this.ControllerContext.RequestContext);
string url = urlHelper.Action("GetPDF", "ManageCredentials");
return url;
}
该 url 是使用将返回 pdf 的操作生成的。
[HttpGet]
public FileResult GetPDF()
{
return File(Session.User.CurrentPDF, "application/pdf");
}
所以,在第一次,好的,加载了正确的pdf,但是在第二次,第三次......加载了相同的pdf,为什么?(我检查了我是否通过了正确的参数,是的,我通过了=))
Obs:当我发布数据以加载 pdf 后,在 jquery 返回之后,我的代码第一次调用动作 GetPDF,但是,当我再次发布时,不再调用动作 GetPDF。