【发布时间】:2011-01-05 05:09:04
【问题描述】:
我的技能让我失望了,我知道我已经看过代码,但我找不到。
获取任意 URL、通过您的 asp.net mvc 路由系统运行它并在另一端引用控制器实例的最快方法是什么?
例如,代码执行是在一些任意的控制器方法中。我想做这样的事情:
...
string myURL = "http://mysite/mycontroller/myaction/myparameters";
RouteData fakeRouteData = new RouteData(Route???, IRouteHandler???)
RequestContext ctxt = new RequestContext(this.ControllerContext.HttpContext,
fakeRouteData);
ControllerFactory factory = ControllerBuilder.Current.GetControllerFactory();
Controller result = factory.CreateController(ctxt, controllername???)
无论代码在哪里执行,我都在尝试像路由系统一样获取控制器的实例。在这一点上,我不清楚如何将这些部分组合在一起。虽然我最终会发现它,但我想我可以通过在这里提问来节省时间;)
【问题讨论】:
-
是的,我一直在使用 Reflector 和各种文章。虽然我希望节省一些时间,但我知道我在某个地方看到过一个线程,其中有两种或三种方法可以做到这一点,而且代码量相当简洁。
-
我写了一个不涉及模拟的完整示例 [这里][1]。 [1]:stackoverflow.com/a/19382567/126574
标签: c# asp.net asp.net-mvc routing controller