ASP.Net MVC - Что заменяет события для поддержки слабой связи? - PullRequest
2 голосов
/ 01 апреля 2010

Какие функции ASP.Net MVC могут заменить способ использования событий в веб-формах для поддержки слабосвязанных компонентов?

Например, возьмите простой элемент управления пейджером в Webforms:

  1. При нажатии на номер страницы
  2. Пейджер запускает событие «PageChange» с новым номером страницы
  3. Эта подписывающая страница / элемент управления получает событие и обрабатывает инициирование вызова для получения и привязки новых данных.

Какие инструменты доступны в ASP.Net MVC для аналогичной поддержки

  • Слабая связь
  • Возможность повторного использования компонента
  • Разделение логики для одной страницы / вида (такой очень сложный тип страницы портала).

Ответы [ 2 ]

1 голос
/ 01 апреля 2010

ASP.NET MVC и Model-View-Controller в целом поддерживают слабую связь и разделение задач, храня данные и код, поддерживающий приложение, отдельно от визуальной разметки уровня представления, которую видят пользователи .

Разработанные должным образом, контроллеры и представления в MVC могут использоваться повторно, так что представление редактирования для сущности может быть «встроено» в связанный вид без изменений.

Например: представление заказов может включать частичное представление OrdersDetail. Это частичное представление можно заменить на представление редактирования OrderDetail, которое также доступно в другом месте приложения.

Отделение модели от представления делает модульное тестирование более эффективным и менее обременительным за счет отделения кода от контекста уровня представления. Вам не нужно ссылаться на System.Web для кода модульного тестирования, который извлекает данные из базы данных.

0 голосов
/ 09 августа 2010

MVC устраняет события, потому что события по большей части являются просто ненужным слоем между тем, что клиент пытается сказать серверу, и сервером, фактически делающим это.

В примере разбивки на страницы для веб-форм клиент нажимает кнопку, браузер отправляет событие / viewstate, и механизм запускает событие ButtonClicked. Вы проверяете событие, определяете, что клиент собирается создать страницу, и выполняете логику подкачки.

В парадигме MVC пользователь нажимает кнопку, которая делает запрос непосредственно к коду, который выполняет логику подкачки. Поскольку вы знаете, какое действие должна вызывать кнопка, когда вы ее нажимаете, зачем проходить все махинации запуска события? В вашем контроллере вы, конечно, можете запустить событие, когда получите команду, но я, честно говоря, не могу представить себе вариант использования для этого.

Оба метода выполняют одно и то же, но MVC просто устраняет уровень сложности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...