2010-07-27 71 views
0

我用WindsorControllerFactory替换了ASP.NET ControllerFactory。我如何获得操作名称?

我注册了所有的控制器和拦截器。直到这里一切运作良好。

现在,当我在调试运行我的截击,我总是得到invocation.Method.Name执行ControllerBase。我需要获取动作名称和动作参数来进行一些验证。

如何在拦截器的拦截方法中获取动作名称和动作参数?这个信息ControllerBase_Execute方法和他的参数不帮我。

感谢,

拉斐尔Molesim

回答

1

我相信你可以得到从RequestContext.RouteData集合。我认为方法/行动的关键是“行动”。例如:

requestContext.RouteData.Values["action"] 
+0

不错!有用。 但我对此并不满意。我想拦截真实的行动。现在我需要在我的拦截器方法中显示一个错误,我该怎么做?如果我有真正的控制器,我会做一些像controller.ModelState.AddModelError()和我可以做一些视图(模型)之后。 谢谢, Raphael Molesim – user403633 2010-07-29 08:11:45

+0

不确定我完全理解。你能否提供一些拦截器的示例代码 - 如何将它集成到ControllerBase.Execute中,它在做什么以及你想要做什么? – PatrickSteele 2010-07-29 12:14:39