Определенно НЕ ошибка.
Такое поведение позволяет легко использовать шаблоны View, например, для обработки ошибок.
Поведение по умолчанию для ASP.NET MVC таково: если вы делаете ...:
return View();
... он ищет шаблон представления с именем действия для использования в нескольких местах: папка соглашения об именах по умолчанию для контроллера, т.е. / Area1 / Views / Home /, затем / Area1 / Views / Shared / затем Area1 / Views / then / Views / Shared / then / Views /
Если он не находит такой View, соответствующей названию действия, он выдает ошибку.
Так много для поведения по умолчанию. Чтобы «настроить» это поведение, вам нужно сделать следующее:
В действиях вашего контроллера вы можете указать имя шаблона представления, которое будет использоваться при возвращении. EG:
return View("MyOtherView");
или еще лучше, если используется T4MVC:
return View(MVC.Area1.Home.Views.MyOtherView); // does away with "magic" strings
В результате я не вижу необходимости отключать поведение по умолчанию, чтобы иметь возможность делать (что угодно), что вы хотите. Контроллеры предназначены для управления тем, какие представления используются для отображения пользователю. Это лучшая практика.
Однако ASP.NET MVC очень настраиваемый, поэтому, я полагаю, есть способы и средства для его отключения.
Если вы хотите это сделать, удачи вам, но гораздо разумнее следовать стандартным настройкам и понять, как работает ASP.NET MVC, особенно если вы новичок.
Примечание:
Вышесказанное относится к ASP.NET MVC 1, 2, 3 и будет действовать в дальнейшем. Это поведение по умолчанию для всех движков View, включая Razor и WebForm Views.
PS:
И вы можете настроить URL-адреса с помощью регистрации маршрута, если вас интересует внешний вид URL-адреса в браузере пользователя.