Потому что так определяется маршрут по умолчанию. Если вы не хотите указывать имя действия, вы можете изменить его следующим образом:
routes.MapRoute(
"Default",
"{controller}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Это означает, что вы, вероятно, не должны делать этого, потому что теперь в вашем маршруте у вас нет возможности указать имя действия, которое вы хотите вызвать на данном контроллере, что означает, что вы можете иметь только одно действие каждый контроллер и это действие будет индекс. С другой стороны, если вы хотите сделать это на каком-то конкретном контроллере, вы все равно можете сохранить маршрут по умолчанию и добавить еще один:
routes.MapRoute(
"Vendors",
"vendors/{id}",
new { controller = "Vendors", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);