ASP.Net Webforms页面以大量形式包装,限制页面上的其他表单,因为嵌套表单不起作用。这是故意的,因为在webforms项目中,每页只能有一个表单,并且所有服务器/客户端交互都需要它。为了构建自定义表单,我在this way中组合了一个模态对话框。为了允许来自服务器的正确错误消息,我的模态对话框必须回发给自己。为此,我按照this trick使用表单目标作为对话框所在窗口的名称。
当我尝试添加按钮来下载文件时出现问题。当我尝试从此对话框下载文件时,没有任何反应。我可以将我的响应重定向到有问题的文件,但我无法将文件写入响应,因为当我单击按钮并且没有任何反应时,对话框就位于那里。
答案 0 :(得分:2)
经过一段时间研究和构建一个小测试用例,我发现这里有几个有趣的因素。
通过广泛的测试,这似乎是一个模糊的错误,甚至可能是一种奇怪的安全尝试。这似乎也是针对IE 8的,但我没有测试其他版本的IE。
允许在模态对话框中下载的技巧是更改表单的目标。
function downloader() {
document.getElementById("form1").target = "_blank";
}
这修复了IE错误并且似乎在所有其他浏览器中都有效(尽管我不能让Opera显示弹出窗口,即使是“允许所有弹出窗口”)。
认为我辛苦工作的日子不应该浪费,也许这将有助于其他人。