Masz kilka opcji:
metoda 1 - Sprawdź metodę żądanie:
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
'Show Results...
End If
Metoda 2 - dodaj ukryte pole do formularza z wartością, a następnie sprawdź, czy ta wartość został wysłany:
If Request.form("HiddenValue") = "1" Then
'Show Results...
End If
Metoda 3 - Sprawdź, czy zbiór Request.Form zawiera elementy:
If Request.Form.Count > 0 Then
'Show Results...
End If
metoda 4 - posta kwerendy (tj Metoda zestaw <form>
do? post = yes)
If Request.QueryString("post") = "yes" Then
'Show Results...
End If
Który z nich wybrać?
Moją preferowaną opcją jest metoda 4 - ponieważ jest ona dobrze widoczna na pasku adresu, jeśli chodzi o to, co się dzieje - jeśli z jakiegoś powodu nie chcę prezentować tego poziomu szczegółowości w adresie URL, zazwyczaj używam opcji 3 jako jest łatwy w implementacji, nie wymaga żadnych zmian w formularzach źródłowych. & jest niezawodny. Co do pozostałych dwóch metod:
- Metoda 1 - Staram się unikać powołując się na zmiennych serwerowych gdybym nie mieć 100% kontrolę nad serwerem - żadnego realnego uzasadnienia, że tylko ogólny nawyk mam tendencję do pracy.
- Metoda 2 - Można zastąpić ukryte pole innym polem, które zawsze będzie zawierało wartość o wartości .
To miło, ale co poleciłbyś? Jak porównują się różne podejścia? – AnthonyWJones
@AnthonyWJones Tak, dobra uwaga, odpowiedź została zredagowana, aby dać trochę wyjaśnień. – HeavenCore
FWIW, polecam Metodę 1. Dziwny FUD na serwerze, którego nie kontrolujesz, jest irracjonalny, jeśli nie możesz ufać serwerowi, że zrobi coś takiego, to może powinieneś znaleźć innego hosta. Zmienna "REQUEST_METHOD" służy wyraźnemu celowi wykrycia, która metoda HTTP jest używana. Metody 2 i 4 wymagają, aby twórca oprogramowania zanieczyścił swój kod niepotrzebną treścią, dlatego należy unikać IMO, gdy dostępne są rozwiązania alternatywne. Metoda 4 jest również całkiem dobrym podejściem, ale brakuje jasności celu, jaki ma metoda 1. – AnthonyWJones