ASP.NET MVC2 и AJAX - PullRequest
       25

ASP.NET MVC2 и AJAX

1 голос
/ 09 июня 2010

В настоящее время я занимаюсь разработкой нового веб-сайта с использованием ASP.NET MVC2. Многое из того, что я хочу сделать с веб-сайтом (с точки зрения внешнего интерфейса), включает задачи типа AJAX-y.

Два примера:

  1. Я хочу отображать формы и переключаться между ними с помощью раскрывающегося меню (или по ссылкам), не возвращаясь и не обращаясь к серверу каждый раз.
  2. Я хочу, чтобы пользователь мог выбирать точки на элементе управления Chart и обновлять части страницы соответствующими данными в зависимости от того, что он / она выбирает (частичное обновление страницы).

В обоих этих случаях я могу выполнить то, что хочу, используя традиционные обработчики событий веб-форм и т. Д. К сожалению, использование ScriptManager нарушает дух MVC. Кажется, что MVC предотвращает использование многих элементов управления, доступных для ASP.NET.

Итак, мой вопрос: как мне использовать AJAX и делать вызовы AJAX без использования ScriptManager и метода веб-форм с использованием обработчиков событий?

1 Ответ

2 голосов
/ 09 июня 2010

Это не значит, что ScriptManager «нарушает дух» MVC, просто фреймворк MVC построен по-другому.

Веб-элементы управления основаны на таких веб-формах ASP.Net, как ViewState и Postbacks. Они не существуют в ASP.Net MVC, поэтому любые элементы управления, работающие на них, не будут работать должным образом. Однако элементы управления будут по-прежнему отображать свой HTML-код и запускать свои обработчики событий, поскольку каждая страница .aspx все еще проходит жизненный цикл страницы, когда она компилируется механизмом представления по умолчанию. (Если вы используете собственный механизм просмотра для рендеринга HTML, они не будут работать вообще!)

В любом случае, большинство людей полагаются на сценарии Microsoft ajax (MicrosoftAjax.js, MicrosoftMvcAjax.js) или используют стороннюю библиотеку, такую ​​как jQuery, для выполнения своих функций ajax. Если вы только начинаете, я бы предложил зайти на основной сайт ASP.Net MVC и проверить некоторые из их руководств. Электронная книга NerdDinner - отличное начало для MVC, и есть глава по использованию Microsoft Ajax для динамических обновлений .

...