是否可以从ControllerContext的实例中获取操作结果类型(ViewResult、JsonResult等
发布于 2013-02-07 00:05:08
不,这不可能。控制器的运行时间比任何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中才有意义。在此操作执行完成之前,尝试验证控制器操作返回的结果是没有意义的。
https://stackoverflow.com/questions/14733316
复制相似问题