Muszę sprawdzić RequestType
z HttpRequest
w ASP.NET (lub WebRequest.Method
). Wiem, że mogę po prostu użyć wartości ciągu „ POST
” lub „ GET
” dla typu żądania, ale mógłbym przysiąc, że gdzieś w jakiejś klasie w .NET istnieje stała, która zawierała wartości.
Z ciekawości Zastanawiałem się, czy ktoś wie, co klasa te stałe łańcuchowe dla GET
i POST
były w. Próbowałem szukają w internecie, ale nie miałem szczęścia, więc pomyślałem, że pytam tutaj.
PATCH
brakuje również czasownika.Istnieje również,
System.Net.Http.HttpMethod
który może służyć zamiast enum. Możesz je porównaćaMethod == HttpMethod.Get
, itp. Aby otrzymać string nazwę metody wywołaj npHttpMethod.Get.Method
.źródło
void Request(HttpMethod method = HttpMethod.Get)
.).HttpMethod.Get.Method
NIE jest stałą czasową kompilacji :( gdzieSystem.Net.WebRequestMethods.Http
są stałeW ASP.NET MVC są w System.Web.Mvc.HttpVerbs . Ale wszystkie metody, które przyjmują jedną z tych wartości wyliczenia, mają również nadpisanie tekstu, ponieważ nie ma pełnego zestawu czasowników HTTP, a jedynie zestaw aktualnie zdefiniowanych wartości (patrz tutaj i tutaj i tutaj ).
Nie można utworzyć wyliczenia obejmującego wszystkie czasowniki, ponieważ istnieje możliwość dodawania czasowników, a wyliczenia mają problemy z wersjonowaniem, które sprawiają, że jest to niepraktyczne.
źródło
W ASP.NET Core znajdziesz kolekcję ciągów metod http w klasie HttpMethods.cs w obszarze
Microsoft.AspNetCore.Http
nazw.Ta klasa oferuje również pomocniki logiczne, takie jak
IsGet()
lubIsPost()
dla lepszej semantyki.Należy pamiętać, że te ciągi są widoczne jako,
public static readonly string
a nie jakoconstants
.źródło