2011-08-01 91 views

回答

6
HttpContext.Current.Request.HttpMethod 
+0

感謝您的幫助 –

2

爲了得到獲取和發佈

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

HttpContext.Current.Request.HttpMethod返回的字符串,而是更好地利用枚舉HttpVerbs。它似乎還有在方法沒有建立得到currrent動詞如枚舉,所以我寫了幫手它

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

基控制器類應用

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

在ASP.NET中CORE 2.0,您可以使用以下方式獲取(或設置)當前上下文的HTTP動詞:

Request.HttpContext.Request.Method