我有一个用 aspx 页面处理的 html 表单。如果 aspx 页面上的验证返回 false(我不能使用 javascript 来验证 html 表单),我希望能够返回到我的 html 表单。我不能使用 Response.Redirect,因为我会丢失最初在 html 表单上输入的数据。
设置是:
- form.html(将form标签的action属性设置为processform.aspx)
- processform.aspx(使用 Request.Form["myvalue"] 从 html 表单获取值)
如果值无效,返回form.html,否则Response.Redirect("success.html")
也许我只是走错了路。谁能提出更好的方法?
请注意:我不能在 form.html 上使用 javascript,但是我可以在 processform.aspx 页面上使用 javascript - 尽管如果可能的话我更喜欢其他方法。
最佳答案
您说 form.html 不能在 form.html 上使用任何 javascript - 这是否意味着您根本不能在此解决方案中使用 Javascript?
我的答案是从您的 processform.aspx 输出一个 javascript 片段,它只调用 history.go(-1)
。
示例:
if(valid)
{
Response.Redirect("success.html", true);
}
Response.Clear();
Response.Write("<html><body><script>history.go(-1);</script></body></html>");
Response.Flush();
Response.End();
但是,如果您根本无法使用 Javascript... 选项相当有限。
RFC 2616 定义了 HTTP 204“无内容”——您可以尝试发送该内容,但这是成功状态,浏览器的行为可能会有所不同。然而,理论上,内容应该保持不变。然而,用户可能会非常困惑,因为没有可见的反馈。
如果您能解释这些限制背后的原因,也许我们可以提出更好的解决方案。
关于c# - 如何在不使用 Response.Redirect 的情况下返回 "Go Back",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1142429/