你可以从filterContext
的RouteData
财产得到它:
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
RouteData rd = filterContext.RouteData;
// read from the current request RouteData the information
// you were looking for. For example to get the current controller
// and action:
string currentController = rd.GetRequiredString("controller");
string currentAction = rd.GetRequiredString("action");
}
至于哪种观点被渲染而言,你可以检索来自Result
属性这样的信息:
var viewResult = filterContext.Result as ViewResultBase;
if (viewResult != null)
{
// the controller action returned a view result (either a ViewResult or PartialViewResult)
// so we could retrieve the view name here:
string viewName = viewResult.ViewName;
}
如果另一方面控制器动作返回一个JsonResult,你也可以提取它:
var jsonResult = filterContext.Result as JsonResult;
等等...
谢谢,达林。我明白了。我只需要一个轨道来运行。我感到惭愧的提出了这个问题和最近的一个关于截取东西(动作过滤器)的问题,你也回答了这个问题。我通常不是这个笨蛋。我不知道是什么,如果这是我所承受的压力,我最近不会去思考。 –
没问题。没有什么可以感到羞耻的。这就是StackOverfow的重点 - 帮助同行开发人员和学习新事物。 –
它可能会帮助其他人,特别是考虑到达林的反应深度,所以这不是件坏事 – levelnis