2014-03-05 50 views
3

OnActionExecuting方法中,會進行一些處理,這可能會導致重定向到主頁。在OnActionExecuting中處理不同的GET和POST

但在Ajax POST調用中,這些處理肯定會失敗。調用是由Kendo UI的網格進行的,所以我無法控制它們。

所以我想這個方法處理兩種不同的方式,如果電話是GETPOST

我想:

[HttpGet] 
protected override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 
    // Do something 
} 

[HttpPost] 
protected override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 
    // Do nothing 
} 

但它的工作。 我在WebFroms中找不到像IsPostBack這樣的屬性。

回答

5

ActionExecutingContext有一個HttpContext屬性。從那裏,可以獲取Request屬性,其具有HttpMethod屬性

protected override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 
    if(filterContext.HttpContext.Request.HttpMethod == "POST") 
    { 
     // Do nothing 
    } 
    else 
    { 
     //Do Something 
    } 
} 
+0

我使用的 '布爾isPost = filterContext.HttpContext.Request.HttpMethod.Equals( 「POST」,StringComparison.InvariantCultureIgnoreCase);'。我認爲它比本機布爾值醜,但它的工作原理。我在環顧HttpContext,但在錯誤的地方。謝謝。 –