Http-команда текущего контекста http

Как найти команду http (POST, GET, DELETE, PUT), используемую для доступа к вашему приложению? Я ищу httpcontext.current , но там, кажется, есть какое-то свойство, которое дает мне информацию. Спасибо

25
задан Deanna 1 August 2011 в 12:47
поделиться

5 ответов

Используйте HttpContext.Current.Request.HttpMethod.

См .: http://msdn.microsoft.com/en-us/library/system.web.httprequest.httpmethod.aspx

41
ответ дан 28 November 2019 в 20:35
поделиться
HttpContext.Current.Request.HttpMethod
7
ответ дан 28 November 2019 в 20:35
поделиться

Для получения и отправки

string method = HttpContext.Request.HttpMethod.ToUpper();
3
ответ дан 28 November 2019 в 20:35
поделиться

Вы также можете использовать: HttpContext.Current.Request.RequestType

https://msdn.microsoft.com/en-us/library/system.web.httprequest.requesttype (v = vs.110) .aspx

2
ответ дан 28 November 2019 в 20:35
поделиться

HttpContext.Current.Request.HttpMethod возвращать строку, но лучше использовать enum HttpVerbs . Кажется, что нет встроенного метода для получения текущего глагола в виде enum, поэтому я написал для него помощник

Класс помощника

public static class HttpVerbsHelper
    {
        private static readonly Dictionary<HttpVerbs, string> Verbs =
            new Dictionary<HttpVerbs, string>()
            {
                {HttpVerbs.Get, "GET"},
                {HttpVerbs.Post, "POST"},
                {HttpVerbs.Put, "PUT"},
                {HttpVerbs.Delete, "DELETE"},
                {HttpVerbs.Head, "HEAD"},
                {HttpVerbs.Patch, "PATCH"},
                {HttpVerbs.Options, "OPTIONS"}
            };

        public static HttpVerbs? GetVerb(string value)
        {
            var verb = (
                from x in Verbs
                where string.Compare(value, x.Value, StringComparison.OrdinalIgnoreCase) == 0
                select x.Key);
            return verb.SingleOrDefault();
        }
    }

Базовый класс приложений контроллера

public abstract class BaseAppController : Controller
    {
        protected HttpVerbs? HttpVerb
        {
            get
            {
                var httpMethodOverride = ControllerContext.HttpContext.Request.GetHttpMethodOverride();
                return HttpVerbsHelper.GetVerb(httpMethodOverride);
            }
        }
}
0
ответ дан 28 November 2019 в 20:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: