Javascript ASP.NET表单在不丢失状态的情况下发布到经典ASP页面
我有一个ASP.NET页面,其中包含一个表单,在提交时,将其发布到一个经典的ASP页面SaveToDatabase.ASP,该页面的职责是将表单数据保存到数据库中 mypage.aspx:Javascript ASP.NET表单在不丢失状态的情况下发布到经典ASP页面,javascript,c#,html,asp.net,asp-classic,Javascript,C#,Html,Asp.net,Asp Classic,我有一个ASP.NET页面,其中包含一个表单,在提交时,将其发布到一个经典的ASP页面SaveToDatabase.ASP,该页面的职责是将表单数据保存到数据库中 mypage.aspx: <form name="mfyorm" id="myform" method="POST" action="SaveToDatabase.asp" runat="server"> ... </form> ... SaveToDatabase.asp使用request.form读
<form name="mfyorm" id="myform" method="POST" action="SaveToDatabase.asp" runat="server">
...
</form>
...
SaveToDatabase.asp使用request.form读取发布的值,并使用ADO将这些值保存到数据库中。使用经典ASP的原因是由于遗留的原因,而且过于复杂,无法从中迁移
如果由于某种原因ASP页面无法保存数据(例如,由于查询超时),则会输出错误消息。我还希望在消息旁边包含一个链接,单击该链接后,用户将返回mypage.aspx(使用编辑过的表单),以便用户可以重试保存操作
我遇到的困难是如何让mypage.aspx加载它以前的状态,因为我不希望用户丢失未保存的更改。我想我可以在导航回mypage.aspx时,以查询字符串的形式传递从request.form值检索到的值。以这种方式重新填充所有表单值似乎是一种痛苦。有没有其他技术可以用来防止状态丢失?必须考虑在iframe中运行经典ASP页面,并让它在父ASP.Net页面中调用JavaScript函数?您可能还希望ASP.Net页面中有一个计时器,在ASP页面无法完成时触发该计时器。这样,您将保留ASP.Net页面状态。您还可以在经典ASP页面上包含一个小的
iframe
,其中包含一个空白页面,并在页眉中包含
。这将每15分钟刷新一次iframe。只需确保它位于某个地方,并且与主页的背景颜色相同即可。最好注意,在大多数情况下,元刷新是不受欢迎的。要响应其他人的建议,您可能希望在不同的框架中运行ASP代码,或者可能是带有“处理”消息的模式弹出窗口。根据您的布局,其中一个可能更适合您的用户。您甚至可以将iFrame(在调用之前隐藏)塞进submit/cancel按钮下方的底部,在提交时激活/显示带有消息“Save…/processing…”的框架,如果返回错误,则显示它并相应地设置框架样式。是的,我喜欢使用隐藏iFrame的想法。我很乐意接受你的回答。