2010-09-21 67 views
4

我需要使用頁面上存在的現有數據填充新窗口(無菜單,無地址欄)。
我正在使用一個java腳本函數來達到這個目的。.NET MVC中的彈出窗口

function popup() { 
     window.open("../AcknowledgeStatements/OutStandingAckInPdf", '', 'scrollbars=yes,width=740,height=600,resizable=yes'); 
    } 


<input name="cmdButton" id="cmdPrint" type="button" class="button" value="Print" onclick="popup()"/> 

如何將此頁中的模型和TempData/ViewData傳遞到彈出窗口? 有人可以幫我嗎?

回答

2

既然你不想看到菜單或地址欄,我還會添加menubar = no,location = no到你的可選規範參數。你可以找到完整的選項列表here

現在,只要將數據傳遞到新窗口:window.open,沒有任何方法做到這一點。你必須做的是傳遞要顯示在彈出到服務器的任何數據作爲GET參數

function popup() { 
    window.open("../AcknowledgeStatements/OutStandingAckInPdf?SomeParam=SomeValue&SecondParam=SomeValue", '', 'scrollbars=yes,width=740,height=600,resizable=yes'); 
} 

然後在視圖中向下傳遞數據。但是remmeber對此有限制,因爲GET參數可以限制網站地址的最大長度。我認爲這是1024個字符,但不要在此引用我的意思。

反正,更多。爲什麼你需要這些數據顯示在彈出窗口中。彈出式窗口是過去的通常只是惹惱用戶的遺蹟。大多數現代瀏覽器都傾向於阻止彈出窗口,並要求用戶明確允許顯示彈出窗口。如果您在原始html中預先包含template(可以使用它做的很好的解釋),然後將其顯示爲dialog box,那麼您可以節省自己往返服務器的時間。恕我直言,這是一個更加友好的選項,然後彈出窗口。