のインスタンスからアクション結果タイプ(、、など)を取得することは可能ViewResult
ですか? JsonResult
ControllerContext
質問する
1454 次
1 に答える
7
いいえ、それは不可能です。コントローラーは、どの ActionResults よりもはるかに早く実行されます。しかし、ActionFilter を作成している場合はfilterContext
、Result プロパティを使用してその情報を取得できます。
例えば:
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
}
}
これは、コントローラー アクションの実行が終了した後、つまりとの内部OnActionExecuted
でのみ意味があることに注意してください。このアクションの実行が完了する前に、コントローラー アクションが返した結果を検証しようとしても意味がありません。OnResultExecuting
OnResultExecuted
于 2013-02-06T16:05:08.170 に答える