我已經將它分解爲兩個獨立的主控制器操作,使用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();" />
<% } %>
希望這有助於:-)
也許會返回最終頁面的視圖,但在客戶端的原始按鈕的單擊事件中也會爲PDF打開一個新窗口? – David 2010-09-07 23:36:36
我在想自己David,你有沒有從客戶端點擊事件中調用Server ActionMethod的例子?這聽起來像可能會工作... – 2010-09-08 01:35:27