Проблема в том, что если нет контроллера с ожидаемым именем типа (т.е. если пользователь вводит " Amdin ", базовый класс ControllerFactory будет искать " Amdin Controller" и не найдет его, но все равно вызовет ваш переопределенный метод). В этом случае переменная controllerType будет нулевой. Таким образом, вы можете просто проверить его на null перед строкой, которую вы указали, а затем (если это null) либо:
A) Внести исправление орфографии, например, предложенное cfeduke
или B) просто сгенерируйте исключение HttpException с кодом состояния 404 (что должно вызвать ошибку 404, которую вы ищете).
ПРИМЕЧАНИЕ. Если вы делаете исправление орфографии, вам, вероятно, следует выполнить Response.Redirect на новый URL-адрес, а не просто загружать нужный контроллер в автоматическом режиме, чтобы адресная строка изменялась, отражая исправление орфографии