以为我会把这个问题提交给StackOverflow人群,因为我的想法已经用完了。
我收到用户的请求,一旦点击一个按钮,就会生成一个他们想要自动查看的PDF表单,一旦他们关闭PDF,页面就会成为“最终页面”,而不是页面点击了按钮。
在带有按钮的前期最后一页中,控制器调用:
return File(finalForm, "application/pdf", Server.HtmlEncode(finalForm));
但是现在这已经将控制传递给了客户端,我无法路由到另一个视图。
关于如何显示新视图的任何聪明的想法?
答案 0 :(得分:8)
我已将其分解为Home Controller上的两个单独操作,使用FinalPage操作作为重定向到的视图,将GetFile操作作为返回文件本身的操作。
<强>控制器强>
public ActionResult GetFile()
{
return File(@"path to pdf.pdf", "application/pdf");
}
public ActionResult FinalPage()
{
return View();
}
查看强>
<script>
function showfile() {
window.open('<%= Url.Action("GetFile", "Home")%>')
}
</script>
<%= Html.ActionLink("click", "FinalPage", "Home", null, new { onclick = "return showfile();" }) %>
这将打开一个新窗口并返回显示的文件,但也会将其他浏览器窗口移动到同一次点击的最终页面上。
希望这有帮助。
修改强>
更新为按照评论运行提交按钮...回答评论,是的,您可以通过提交按钮执行: - )
<script>
function showfile() {
window.open('<%= Url.Action("GetFile", "Home")%>')
}
</script>
<% using(Html.BeginForm("FinalPage", "Home")) { %>
<input type="Submit" value="click" onclick="return showfile();" />
<% } %>
希望这会有所帮助: - )
答案 1 :(得分:1)
function showfile() {
window.open('PATH','_self')
}