Мне нужно , чтобы проверить RequestType
из HttpRequest
в ASP.NET (или WebRequest.Method
). Я знаю, что могу просто использовать строковые значения " POST
" или " GET
" для типа запроса, но я мог бы поклясться, что где-то в каком-то классе .NET есть константа, содержащая значения.
Из любопытства мне было интересно, знает ли кто-нибудь, для какого класса эти строковые константы GET
и POST
принадлежат. Я пробовал искать в Интернете, но мне не повезло, поэтому я решил спросить здесь.
PATCH
глагол тоже отсутствует.Также существует,
System.Net.Http.HttpMethod
который может служить вместо enum. Вы можете сравнить ихaMethod == HttpMethod.Get
и т. Д. Чтобы получить строковое имя метода, вызовите, напримерHttpMethod.Get.Method
.источник
void Request(HttpMethod method = HttpMethod.Get)
).HttpMethod.Get.Method
НЕ является постоянной времени компиляции :( гдеSystem.Net.WebRequestMethods.Http
константыВ ASP.NET MVC они находятся в System.Web.Mvc.HttpVerbs . Но все методы , которые принимают один из этих значений перечислений также имеют текстовое переопределение, так как не существует полного набора HTTP глаголов, только набор определённых значений (см здесь и здесь и здесь ).
Вы не можете создать перечисление, которое охватывает все глаголы, так как есть вероятность, что глаголы могут быть добавлены, а в перечислениях есть проблемы с версией, которые делают это непрактичным.
источник
В ASP.NET Core вы найдете коллекцию строк метода http в классе HttpMethods.cs в
Microsoft.AspNetCore.Http
пространстве имен.Этот класс также предлагает логические помощники, такие как
IsGet()
илиIsPost()
для лучшей семантики.Обратите внимание, что эти строки отображаются как,
public static readonly string
а не какconstants
.источник