4

我需要使用页面上的现有数据填充一个新窗口(没有菜单,没有地址栏)。
为此,我正在使用 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()"/>

如何将此页面中的模型和 TempData/ViewData 传递到弹出窗口?有人可以帮我吗?

4

1 回答 1

2

好吧,既然您不想看到菜单或地址栏,我还会将 menubar=no,location=no 添加到您的可选规格参数中。您可以在此处找到完整的选项列表

现在,至于将数据传递到您的新窗口:window.open,没有任何方法可以做到这一点。您需要做的是将要在弹出窗口上显示的任何数据作为 GET 参数传递给服务器

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

然后在视图中传递您的数据。但是请记住,这有一些限制,因为 GET 参数的长度可以限制为网址的最大长度。我认为这是 1024 字符,但不要引用我的话。

无论如何,还有更多。为什么需要这些数据显示在弹出窗口中。弹出窗口是过去的遗物,通常只会惹恼用户。大多数现代浏览器倾向于阻止弹出窗口并要求用户明确允许显示弹出窗口。如果您在原始 html 中预先包含一个模板(很好的说明您可以用它做什么),然后将其显示为一个对话框,您可以节省到服务器的往返行程。恕我直言,这是一个比弹出窗口更友好的选择。

于 2011-01-11T22:14:32.270 回答