我在MVC 5应用程序中有现有功能,用于根据名称检查控制器是否存在,如果是,则使用相同的Action将它们重定向到该控制器。但我正在努力调整逻辑以在MVC Core中完成相同的任务。
在MVC5中,我可以使用ControllerFactory
执行此操作,并使用新的RequestContext(控制器名称)调用CreateController(requestContext, controllerName)
,然后检查结果。
在MVC Core中,似乎仍然涉及ControllerFactory
,CreateController
仍有一种方法,但其签名为CreateController(ActionContext context)
传入一个空的ActionContext导致一个关于未设置ControllerTypeInfo的错误(我假设在ControllerFeature
集合中查找它),但是如果我有这个,我就不需要了做任何这个,因为我已经有足够的时间来确定控制器是否存在。
我可以使用其他东西,或者从ServiceContainer请求,以确定是否有可用的特定名称的控制器?