Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > MicrosoftAjax и jQuery


Автор: VikentiyR 6.8.2009, 01:56
В MVC по умолчанию предлагают MicrosoftAjax и jQuery.
В JQuery мне понравилось множество примеров и удобных UI на сайте и пользовался  в основном им. 
Но в некоторых формах использовал и Аякс от Майкрософт, в основном Ajax.BeginForm().
Сейчас решил отказаться от МС Аякс для оптимизации кода (слишком много JS подтягивать приходится)

Есть ли какие нибудь подводные камни при этом?
Как лучше для MVC сделать обёртку для JQuery, по аналогии с МС Ajax?

Если не трудно киньте ссылку по примерам оптимизации и просо хорошего тона программирования с использованием jQuery.
В примерах часто вешают события так. Для чего это делается?
Код

$('#doSth').click(function() {  
   $.getJSON("/Home/doSth", { current: <%=Model.Id %> }, function(data) {  
      if(data.success=true) {
         ...
      }
   });  
}); 

Автор: Bestoloch 6.8.2009, 13:50
Вас интересует что делает приведенный вами код?

Автор: PashaPash 6.8.2009, 14:50
Цитата(VikentiyR @  6.8.2009,  01:56 Найти цитируемый пост)

Как лучше для MVC сделать обёртку для JQuery, по аналогии с МС Ajax?

см. ататч. взято где-то в нете, use at your own risk.

Автор: VikentiyR 6.8.2009, 19:52
Bestoloch, Нет, js изучал давно и за это время некоторые подходы изменились. Раньше я функции прям в ссылке я вешал на онклин. Сейчас после загрузки документа события вешают динамически. Хотел по подробнее почитать о новых подходах и оптимизации, адаптированное к jQuery.
PashaPash, файл не прошел

Автор: PashaPash 6.8.2009, 20:02
VikentiyR, глюки форума. добавил.

Автор: VikentiyR 7.8.2009, 02:23
PashaPash, Спасибо за файл, но я имел ввиду обёртка на стороне сервера на C#
Хочу переписать хелперы Ajax.BeginForm() Ajax.ActionLink() под jQuery, так как они действительно бывают полезны.
Плюс хочу добавить несколько своих хелперов.
Опыта работы с jQuery не так много, вот и хочу глянуть примеры работы с jQuery, чтоб не накосячить при написании хелперов.

После чего удалю из проекта МС Ajax (насколько я понял jQury не завязан никак МС Ajax, их просто вместе включили)


Автор: Любитель 7.8.2009, 10:19
Цитата(VikentiyR @  6.8.2009,  19:52 Найти цитируемый пост)
Раньше я функции прям в ссылке я вешал на онклин. Сейчас после загрузки документа события вешают динамически.

Цитата(VikentiyR @  7.8.2009,  02:23 Найти цитируемый пост)
Хочу переписать хелперы Ajax.BeginForm() Ajax.ActionLink() под jQuery, так как они действительно бывают полезны.

Вы противоречите сами себе smile Хелперы BeginForm и ActionLink из AjaxExtensions генерят формы с нагловнедрённым onsubmit="...", и ссылки с не менее наглым onclick.

Лично я не вижу смысла в этих методах вообще. UrlHelper - да, конечно. А как таковое подписка на onclick или onsubmit в jQuery не имеет никакого прямого отношения к шарпу. Для поста формы одним движениям (через аякс-реквест) есть плагин jQuery.Form. Для аякса есть свои методы (в крайнем случае - полнофункциональный jQuery.ajax), документация у jQuery очень удобная..

Где реально нужно взаимодействие? Это урл-ы и ид-шники HTML-элементов. Вначале можно это передавать через <%= %> вставки, а затем уже по вкусу. Я предпочитаю пихать все нужные урлы в <link> со своими rel-ами (быть может теряется валидность в чисто виде - не спорю, но добавляется семантичность). А id-шники - как-то общепринято считать что они просто фиксированы. Хотя здесь есть проблема - проблема рефакторинга. Впрочем, ИМХО это проблема рефакторинг-тулзов..

Автор: VikentiyR 7.8.2009, 12:09
Цитата(Любитель @  7.8.2009,  10:19 Найти цитируемый пост)
Хелперы BeginForm и ActionLink из AjaxExtensions генерят формы с нагловнедрённым onsubmit="...", и ссылки с не менее наглым onclick.

Я как раз и хотел почитать о плюсах и минусах данных подходов.
Цитата(Любитель @  7.8.2009,  10:19 Найти цитируемый пост)
Лично я не вижу смысла в этих методах вообще. UrlHelper - да, конечно.

Через C# хелперы удобно проставляется адрес, можно просто указать контроллер и экннейм и он сам вытаскивает всё необходимое из таблицы маршрутизации.
В ручную прописывая адресы при дальнейшем изменении таблицы маршрутизации сложнее поменять ссылки во всех местах.

Автор: Любитель 7.8.2009, 13:14
Цитата(VikentiyR @  7.8.2009,  12:09 Найти цитируемый пост)
Через C# хелперы удобно проставляется адрес, можно просто указать контроллер и экннейм и он сам вытаскивает всё необходимое из таблицы маршрутизации.
В ручную прописывая адресы при дальнейшем изменении таблицы маршрутизации сложнее поменять ссылки во всех местах.


Цитата(Любитель @  7.8.2009,  10:19 Найти цитируемый пост)
UrlHelper - да, конечно.

 smile

Добавлено через 2 минуты и 10 секунд
Цитата(VikentiyR @  7.8.2009,  12:09 Найти цитируемый пост)
Я как раз и хотел почитать о плюсах и минусах данных подходов.

Ну.. Просто это не имеет прямого отношения к ASP .Net. А так - скажем, http://habrahabr.ru/blogs/javascript/26152
В то же время - я не навязываю своё мнение. Я признаю другие способы имеющими право на жизнь, если что.

Автор: VikentiyR 8.8.2009, 13:26
Любитель, Большое спасибо за статью.

Может кто нибудь привести пример кода своего UrlHelper для MVC или как добавить в HtmlHelper свою функцию.

Автор: Любитель 8.8.2009, 13:49
VikentiyR, UrlHelper это стандартный класс в неймспейсе System.Web.Mvc.

Автор: VikentiyR 8.8.2009, 15:43
Любитель, Я UrlHelper взял в качестве примера. 
Просто интересует как сделать класс подобный Html или его модифицировать и реализовать свою функцию UrlHelper.

Автор: Любитель 9.8.2009, 07:16
Цитата(VikentiyR @  8.8.2009,  15:43 Найти цитируемый пост)
Просто интересует как сделать класс подобный Html

Html - это не класс, это проперти у MVC-шной базовой ViewPage. Проперти типа HtmlHelper. Плюс ряд экстеншен-методов для этого хелпера. Есть также проперти Url - типа UrlHelper. Можо реализовать свой базовый класс, со своими хелперами. Можно строготипизированные экстеншен-методы для UrlHelper-а (скажем Action, принимающий дерево выражений вида "controller" -> "action method"). Или я не понял, что ты имел ввиду? smile

Автор: Bestoloch 10.8.2009, 14:00
Цитата(VikentiyR @ 8.8.2009,  11:26)
Может кто нибудь привести пример кода своего UrlHelper для MVC или как добавить в HtmlHelper свою функцию.

MVC framework имеет открытый исходный код, там можно посмотреть примеры реализаций различных методов

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)