Скотт Хансельман писал об этом некоторое время назад:
Гибриды плагинов: параллельные веб-формы ASP.NET и динамические данные ASP.MVC и ASP.NET
Но если я правильно помню, если у вас нет контроллера, совпадающего с / blog, то движок по умолчанию отправит запрос в вашу папку / blog, и вы, в дополнение к этому, начинаете, как отмечает Скотт:
Почему ASP.NET MVC не получает запрос? Две причины. Во-первых, в RouteCollection есть опция RouteExistingFiles. По умолчанию он имеет значение false, что заставляет ASP.NET MVC автоматически пропускать маршрутизацию при наличии файла на диске.
Однако он продолжает отмечать, что вы могли бы просто добавить следующее в верхней части определения вашего маршрута:
routes.IgnoreRoute("blog/{*pathInfo}");
Что будет игнорировать все запросы к / blog /