2011-08-01 35 views

Trả lời

6
HttpContext.Current.Request.HttpMethod 
+0

Cảm ơn sự giúp đỡ của bạn –

2

Để nhận được Nhận và gửi

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

HttpContext.Current.Request.HttpMethod chuỗi lại, nhưng tốt hơn sử dụng enum HttpVerbs. Dường như không có xây dựng trong phương pháp để có được động từ currrent như enum, vì vậy tôi đã viết helper cho nó

lớp Helper

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

lớp điều khiển cơ bản của ứng dụng

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

Trong ASP.NET CORE 2.0 bạn có thể nhận (hoặc đặt) động từ HTTP cho ngữ cảnh hiện tại bằng cách sử dụng:

Request.HttpContext.Request.Method 
Các vấn đề liên quan