2012-06-28 4 views
0

Я расширяю класс ActionResult. В методе ExecuteResult я хочу проверить, было ли действие GET или POST, однако в классе ControllerContext не отображается свойство, которое позволит мне это сделать. Кто-нибудь знает, как проверить тип запроса с ControllerContext?Получение типа запроса из ActionResult

public override void ExecuteResult(ControllerContext context) 
{ 
    //See if the request was POST 
    if (context.HttpContext.Request.?) 
    { 
     DoStuff(); 
    } 

    DoOtherStuff(); 
} 
+1

Может быть, вы можете сделать что-то подобное [это] (http://stackoverflow.com/ вопросы/1169490/с-диез-Asp-сетчатая MVC-найти выход-ли-получить или-пост-был вызываемые-на-контроллер-ACTi)? – MilkyWayJoe

+0

@MilkyWayJoe да есть. HttpMethod похоронен в классе ControllerContext. Должно быть, не обратили на это внимания. –

ответ

0

попробовать это:

public HttpVerbs RequestHttpVerb(ControllerContext context) 
    { 
     return (HttpVerbs)Enum.Parse(typeof(HttpVerbs), context.HttpContext.Request.HttpMethod, true); 
    } 

    public override void ExecuteResult(ControllerContext context) 
    { 
     if (this.RequestHttpVerb(context) == HttpVerbs.Post) 
     { 

     } 
    }