c# - 如何在不使用 Response.Redirect 的情况下返回 "Go Back"

标签 c# asp.net html forms

我有一个用 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/

相关文章:

asp.net - 缓存 LINQ-SQL 对象和 DataContext 线程安全

asp.net - KendoUI 网格 : Custom dropdown provider shows no text in view mode

javascript - 如果我在向左推菜单中放置超过 4 个元素,为什么动画不起作用?

html - 为什么我的网页上有多余的空间?

c# - 如何配置客户端? AWS Elasticsearch 请求 C#

c# - 如果数据绑定(bind),如何将表单/字段标记为 "dirty"?

javascript - 如何用jquery动态刷新并显示列表?

C# 将 XML 混合内容中的文本反序列化为自定义对象?

c# - .NET 实现编译器最佳性能的最佳编码实践?

javascript - Canvas drawImage 在大型源上速度很慢