【发布时间】:2008-11-18 14:19:14
【问题描述】:
我有一个 5 ASPX 页面wizard。
每个都包含一个SaveAndExit 按钮,该按钮在公共静态类上执行 C# 函数。保存后,C#代码重定向到另一个页面。
有没有办法在保存之后和加载新页面之前运行javascript: alert('Data Saved');。
【问题讨论】:
标签: c# asp.net javascript
我有一个 5 ASPX 页面wizard。
每个都包含一个SaveAndExit 按钮,该按钮在公共静态类上执行 C# 函数。保存后,C#代码重定向到另一个页面。
有没有办法在保存之后和加载新页面之前运行javascript: alert('Data Saved');。
【问题讨论】:
标签: c# asp.net javascript
您必须在回发时注册一个启动脚本才能发出警报。然后在警报后通过 javascript 重定向。
【讨论】:
你不能完全按照你的意愿去做。
C# 代码(服务器端)在页面已经回发并从浏览器卸载之前无法运行。因此,当您的服务器端代码运行时,就浏览器而言,页面甚至不再存在,运行您的 javascript 代码为时已晚。即使在回发的中间也是如此,即使回发的结果将是同一页。这就是为什么在某些情况下,ASP.Net 页面在回发期间会出现闪烁。
因此,如果不通过某种 ajax 回调执行此操作,您将无法在保存数据后强制发出 javascript 警报——这当然是一种选择。另一种选择是让您重定向到的页面在某些情况下显示某种“数据已保存”消息;使用简单的东西来触发它,例如会话变量或加载时隐藏输入的值,因此对用户来说并不明显。
但我认为最好的办法可能就是什么都不做。听起来如果保存失败,您将不会重定向。您甚至可能会显示某种错误。如果您的用户对您的应用没有足够的信心,即使没有错误消息,他们也不信任它,并且该应用已进入下一步,那么您就有麻烦了。
【讨论】:
Vik,除非这是作业,否则我强烈建议你不要这样做。
JavaScript 警报对大多数用户来说非常烦人,并且在这种情况下似乎完全没用,正如 Joel Coehoorn 所解释的那样。
如果您坚持在保存时显示一条消息,请考虑添加一个会话变量,并在重定向页面的顶部显示“数据已保存”消息if 会话变量exist,然后删除会话变量。
不过,正如 Joel Coehoorn 所说,如果出现错误,您绝对应该显示一条消息,但重定向应该是他们需要的所有“证据”,即他们的数据已保存。
【讨论】: