В вашей регистрации маршрутов вы можете добавить маршрут «catchall» после других ваших маршрутов, поэтому, если ни один маршрут не соответствует текущему запросу, вы можете перенаправить его на определенный контроллер / действие
Из другого ответа в переполнении стека:
routes.MapRoute("Error", "{*url}",
new { controller = "Error", action = "404" }
);