Как проверить форму представления ASP classic

Я создаю форму в ASP classic и перезагружаюсь после отправки (действие self)

Но на этот раз он показывает результаты предыдущих представлений, так как я могу проверить, что была сделана передача POST?

Как в PHP:

if($_POST['submit']) {
  show results...
}

Ответ 1

У вас есть несколько вариантов:

Метод 1 - Проверьте метод запроса:

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 - Публикация в строке запроса (т.е. установите action из <form> в ?post=yes)

If Request.QueryString("post") = "yes" Then
    'Show Results...
End If

Какой выбрать?

Мой предпочтительный вариант - метод 4, так как его легко увидеть в адресной строке относительно того, что происходит, - если по какой-то причине я хочу избежать представления этого уровня детализации в URL, я склонен использовать вариант 3, поскольку его легко реализовать, не требует никаких изменений в исходных формах & надежно Что касается двух других методов:

  • Метод 1 - Я стараюсь не полагаться на переменные сервера, если я не иметь 100% контроль над сервером - никакого реального оправдания этому, просто общая привычка, с которой я склонен работать.
  • Метод 2 - Вы можете заменить скрытое поле на другое поле, которое всегда будет содержать ценность.