Основное различие между MVC и классическим ASP состоит в том, что в классическом ASP весь код и разметка для приложения существуют в файле .asp. В MVC файл .aspx содержит только код и разметку для отрисовки страницы. Остальная часть приложения для обработки запросов, извлечения данных модели и применения бизнес-логики существует в классах контроллера и модели. Эти классы гораздо проще тестировать, чем код класса ASP, поскольку они отделены от кода, отвечающего за визуализацию представления.
Это разделение интересов является основой модели MVC . Согласно шаблону код делится на три основных компонента - Модель, Представление и Контроллер. Классы в модели представляют бизнес-объекты для приложения, среду хранения и бизнес-логику, применяемую к бизнес-объектам. Классы в контроллере принимают входящие запросы, используют входные данные или параметры запроса для извлечения соответствующих данных модели и генерируют необходимые данные для представления для визуализации. Представления (страницы aspx) берут данные, предоставленные контроллером, и генерируют разметку.
Webforms (codebehind) находится где-то между классическим ASP и шаблоном MVC. Webforms не обеспечивает разделение интересов, как это делает MVC, но позволяет большему количеству кода существовать «за» реальной страницей. Например, вы можете отделить бизнес-объекты, бизнес-логику и среду хранения (модель, если хотите) от кода, который отвечает за генерацию представления. Сложность состоит в том, что действия контроллера (обработка ввода и извлечение модели) все еще связаны с кодом визуализации представления. Эта интеграция значительно усложняет тестирование этого кода и делает код представления / контроллера гораздо более зависимым друг от друга, чем необходимо - проблемы "смешаны", а не "разделены". В целом, это свидетельствует о плохом дизайне, поскольку в будущем ему будет труднее вносить необходимые изменения.
Надеюсь, это поможет.