Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 原因页面重新加载_Asp.net - Fatal编程技术网

Asp.net 原因页面重新加载

Asp.net 原因页面重新加载,asp.net,Asp.net,我正在将一个应用程序从ASP.NET 2移植到ASP.NET 4.5 我有一个创建弹出窗口的页面(另一个.aspx页面以javascript modalWin函数启动) 关闭弹出窗口时(使用window.close()): 在4.5下,主页将刷新 在2.0下,它不会刷新 这是一个问题,因为它会丢弃父页面上的所有数据 如何确定导致父页面刷新的原因 这对我来说是很难调试的,因为我不知道在哪里设置断点来分步执行代码,以确定它在做什么。当我在onload=函数中设置断点时,它只报告启动javascr

我正在将一个应用程序从ASP.NET 2移植到ASP.NET 4.5

我有一个创建弹出窗口的页面(另一个.aspx页面以javascript modalWin函数启动)

关闭弹出窗口时(使用window.close()):

  • 在4.5下,主页将刷新
  • 在2.0下,它不会刷新
这是一个问题,因为它会丢弃父页面上的所有数据

如何确定导致父页面刷新的原因

这对我来说是很难调试的,因为我不知道在哪里设置断点来分步执行代码,以确定它在做什么。当我在onload=函数中设置断点时,它只报告启动javascript的页面的调用堆栈

我是visual studio的新手,请使用我在屏幕上看到的术语和说明

父页面调用弹出页面,如下所示:

<button id="bbb" onclick="button_onclick(this)">Button</button>
function button_onclick(element) {
    modalWin("popup.aspx", 300, 300);
}
当用户单击弹出页面上的保存按钮时,此javascript将运行:

function closeit() {
    window.returnValue = true;
    window.close();
}
我已经深入研究了代码的更改历史,以前的
按钮是一个图像按钮,但调用的javascript没有更改。

“以前的按钮是一个图像按钮”。你似乎是顺便提到这一点,但这是你的线索。带有客户端单击事件的图像不会导致回发,因为图像不会这样做。而
元素在默认情况下会导致回发,因为它的默认
类型是
submit
。您需要将其更改为
按钮
,以防止其发生

<button type="button" id="bbb" onclick="button_onclick(this)">Button</button>
按钮

这是一个至关重要的变化,它与web的总体工作方式有关,而与ASP.NET无关。NET框架的改变是一种转移注意力的手段。问题的出现不是因为您更改了框架,而是因为您更改了代码

您有足够的分数知道这个问题需要猜测。所以:就像任何其他框架一样,“某物”导致页面“刷新”,查找触发
GET
POST
的任何代码。后者,
POST
是ASP.NETWeb表单的工作方式-它指向任何“提交”的
控件(
ASP:button
,等等)。什么控件调用“弹出窗口”?检查它是如何连接到Javascript的,以及与弹出窗口相关的其他事件是如何连接到Javascript的。有没有一种方法可以使用IE开发者工具在执行任何javascript时中断?我个人不使用IE进行开发调试-你可以在Chrome和FF中进行javascript断点。在您添加的代码中,该
按钮将
提交
/
发布
(如果没有
类型
,则默认操作)谢谢。实际上,我并不是那个改变密码的人。为了简单起见,我只是用这种方式表达。按钮上需要的type=按钮似乎有点奇怪,但web开发中的很多事情都有点奇怪。@MichaelPotter我想这不太明显,我想我已经习惯了。如果未设置其他值,则默认值为
type=“submit”
。这会导致按钮提交它所属的任何表单。
按钮
选项有效地告诉页面它是一个“做其他事情的按钮,而不是一个提交按钮”也许
其他按钮
会是该选项的更好名称,我不知道,我不写规范:-)。唯一的另一个选项是
reset
,这将导致按钮清除其表单中的所有字段。看见