2011-08-01 13 views

Odpowiedz

6
HttpContext.Current.Request.HttpMethod 
+0

Dziękujemy za pomoc –

2

Uzyskania get i post

string method = HttpContext.Request.HttpMethod.ToUpper(); 
0

HttpContext.Current.Request.HttpMethod powrotną ciąg, ale lepsze wykorzystanie enum HttpVerbs. Wydaje się, że ma budować w sposób dostać currrent czasownika jako enum, więc napisałem pomocnika bo

klasa Pomocnik

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(); 
     } 
    } 

klasy kontroler baza aplikacji

public abstract class BaseAppController : Controller 
    { 
     protected HttpVerbs? HttpVerb 
     { 
      get 
      { 
       var httpMethodOverride = ControllerContext.HttpContext.Request.GetHttpMethodOverride(); 
       return HttpVerbsHelper.GetVerb(httpMethodOverride); 
      } 
     } 
} 
1

w ASP.NET CORE 2.0 można uzyskać (lub ustawić) czasownik HTTP dla bieżącego kontekstu, używając:

Request.HttpContext.Request.Method 
Powiązane problemy