【发布时间】:2012-05-27 08:16:06
【问题描述】:
我正在 ASP 经典中设置一个表单,它会在提交后重新加载(操作自我)
但是这次显示的是之前提交的结果,那么如何检查是否已经提交了POST呢?
就像在 PHP 中一样:
if($_POST['submit']) {
show results...
}
【问题讨论】:
标签: forms post asp-classic
我正在 ASP 经典中设置一个表单,它会在提交后重新加载(操作自我)
但是这次显示的是之前提交的结果,那么如何检查是否已经提交了POST呢?
就像在 PHP 中一样:
if($_POST['submit']) {
show results...
}
【问题讨论】:
标签: forms post asp-classic
您有多种选择:
方法一 - 检查请求方法:
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
'Show Results...
End If
方法 2 - 在表单中添加一个带有值的隐藏字段,然后检查该值是否已发布:
If Request.form("HiddenValue") = "1" Then
'Show Results...
End If
方法 3 - 检查 request.form 集合是否包含项目:
If Request.Form.Count > 0 Then
'Show Results...
End If
方法 4 - 发布到查询字符串(即将 <form> 的 action 设置为 ?post=yes)
If Request.QueryString("post") = "yes" Then
'Show Results...
End If
选择哪一个?
我的首选选项是方法 4——因为它在地址栏中很容易看到正在发生的事情——如果出于某种原因我想避免在 url 中显示这种详细程度,我倾向于使用选项 3,因为它很简单实施,不需要对源表格进行任何更改并且是可靠的。 至于其他两种方法:
【讨论】:
REQUEST_METHOD 变量用于明确检测正在使用的 HTTP 方法。方法 2 和 4 要求开发人员用不必要的内容污染他们的代码,因此当有替代方案可用时应避免使用 IMO。方法 4 也是一种很好的方法,但缺乏方法 1 的目的明确性。
REQUEST_METHOD 变量。