public override IController CreateController(RequestContext requestContext, string controllerName)
{
string actionName = requestContext.RouteData.GetRequiredString("action");
string key = _namingConventions.BuildKeyFromControllerAndAction(controllerName, actionName);
ActionController actionInstance = null;
try
{
Type t;
if (_actionTypes.TryGetValue(key, out t))
actionInstance = _createController(t) as ActionController;
else
return base.CreateController(requestContext, controllerName);
}
catch (Exception ex)
{
throw new HttpException(404, "Controller not found", ex);
}
if (actionInstance == null)
{
throw new HttpException(404, "Controller not found");
}
actionInstance.NamingConventions = _namingConventions;
return actionInstance;
}