我需要使用页面上的现有数据填充新窗口(没有菜单,没有地址栏)。
我正在使用java脚本函数。
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()"/>
如何将此页面中的Model和TempData / ViewData传递到弹出窗口? 有人可以帮我吗?
答案 0 :(得分: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');
}
然后在视图中传递您的数据。但是由于GET参数可以限制长度到网址的最大长度,因此对此有限制。我认为这是1024个字符,但不要引用我。
无论如何,还有更多。为什么需要这些数据显示在弹出窗口中。弹出窗口是过去的遗物,通常只会让用户烦恼。大多数现代浏览器倾向于阻止弹出窗口并要求用户明确允许弹出窗口显示。如果您在原始html中预先包含template(可以用它做什么的好解释),然后将其显示为dialog box,则可以节省自己往服务器的往返。恕我直言,这是一个比弹出窗口更友好的选择。