2013-02-06 54 views

回答

4

不,這是不可能的。控制器比任何ActionResults運行得早得多。但是,如果您正在編寫ActionFilter,則可以使用其Result屬性從filterContext中獲取該信息。

例如:

public class MyGlobalActionFilter : ActionFilterAttribute 
{ 
    public override void OnActionExecuted(ActionExecutedContext filterContext) 
    { 
     var result = filterContext.Result; 
     if (result is ViewResultBase) 
     { 
      // the controller action returned a view result 
      // (either a ViewResult or PartialViewResult) 
     } 
     else if (result is JsonResult) 
     { 
      // the controller action returned a JSON result 
     } 
     else if (result is RedirectToRouteResult) 
     { 
      // the controller action redirected 
     } 
     .... and so on 
    } 
} 

記住,這使得只有一次控制器動作執行完畢,a.k.a裏面只有OnActionExecutedOnResultExecutingOnResultExecuted感。嘗試驗證在該操作完成執行之前控制器操作返回的結果是沒有意義的。

+0

謝謝Darin。我不這麼認爲,但想確定。我沒有試圖驗證結果。只是試圖驗證結果類型。 – devlife

相關問題