是否可以從ControllerContext
的實例獲取操作結果類型(ViewResult
,JsonResult
等)?如何從ControllerContext獲取結果類型
1
A
回答
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裏面只有OnActionExecuted
,OnResultExecuting
和OnResultExecuted
感。嘗試驗證在該操作完成執行之前控制器操作返回的結果是沒有意義的。
+0
謝謝Darin。我不這麼認爲,但想確定。我沒有試圖驗證結果。只是試圖驗證結果類型。 – devlife
相關問題
- 1. 如何獲取類庫中的ControllerContext
- 2. 從controllerContext獲取viewModel MVC
- 3. 獲取函數結果類型
- 4. 攔截器獲取結果類型
- 5. Codeigniter從模型獲取結果
- 6. 如何從類型獲取類
- 7. Dart:如何從類中獲取「類型」
- 8. 從mahout獲取分類結果
- 9. 如何從createNativeQuery中獲取結果?
- 10. 如何從Deployment.Current.Dispatcher.BeginInvoke獲取結果?
- 11. 如何從ASyncTask獲取結果?
- 12. 如何從「for xml path」獲取結果?
- 13. 如何從Facebook Insights API獲取結果
- 14. 如何從webview獲取結果值?
- 15. 如何從AlertDialog獲取結果?
- 16. 如何獲取只能從結果集
- 17. 如何從json獲取結果到angularjs
- 18. 如何從NSInvocation獲取NSString結果?
- 19. 如何從@NamedStoredProcedureQuery獲取標量結果?
- 20. 從兩個模型類獲取問題和總體結果
- 21. 如何從codeigniter模型獲取結果作爲對象
- 22. 果園從類型ContentItem獲取字段
- 23. 如果已定義財產,則從模型中獲取結果
- 24. 如何從elasticsearch索引獲取多個類型的搜索結果?
- 25. 即使在結果類型已被轉換爲結果時,獲取「無法從play.api.mvc.AsyncResult類型的結果中提取狀態碼」結果
- 26. 如何從android上的另一個類獲取asynctask結果值?
- 27. 如何從數組類型類中獲取元素類型類?
- 28. 如何從GO結構中獲取嵌入式類型?
- 29. 如何從表中獲取列類型?
- 30. 如何從iframe獲取內容類型?
你的代碼在哪裏運行?一個ActionFilter? – SLaks
這是在FilterConfig中運行的地方,我正在連接全局過濾器。 – devlife