Как стать автором
Обновить

Комментарии 8

Как пример использования asp.net mvc 3 пойдет. А как припер реализации — не очень. Проще реализовать на jquery и css.
Знаете, соглашусь. Действительно как пример — интересно, но вообще, считаю, что asp .net не особо популярная платформа. И как следствие, изучать asp .net, думаю, стоит разве что для расширения кругозора. Что, между тем, тоже весьма полезно.
Я думаю, что вам как раз с расширения кругозора стоит начать.
:D
Не понимаю, за что минус, попробую аргументировать свою т.з.

Используя ajax helper мы заставляем напрягаться вебсервер немного больше, чем следовало бы. В данном случае можно было бы обойтись такой разметкой:
<a href="@Url.Action("pin", "Resource", new { id = Model.Id })" id="page-pin" class="@Iif(Model.Statistics.Pinned, "pinned", "unpinned")">
				<span title="Pin page"></span></a>


Так сделано у меня.
class="@Iif(Model.Statistics.Pinned, "pinned", "unpinned")"
Здесь просто устанавливаем класс при рендеринге страницы.

Теперь можно в css описать классы .pinned/.unpinned.

Все остальное делается на самом jquery:
$("a.unpinned#page-pin").live("click", function () {
      /* ajax запрос, обработка успешного вызова */
      a.removeClass("unpinned").addClass("pinned");
      /* конец обработки запроса */
   return false; 
});

$("a.pinned#page-pin").live("click", function () {
      /* опустим часть кода, оставим только нужное */
     a.removeClass("pinned").addClass("unpinned");
      /* */
   return false; 
});


А методы контроллера те же. Правда возвращать можно либо код сервера, либо еще какой-нить флаг, чтобы различать успешность/неуспешность добавления в избранное.
Мне кажется, в данном случае все намного проще.

Заодно обращусь к arinoki: Я нигде не говорил про асп.нет как про непопулярную платформу. Наоборот, кроме асп.нет я ничем не пользуюсь. А гибкость асп.нет mvc 3 меня более, чем удовлетворяет.
NB: не стоит, правда, использовать в новых проектах метод jquery live(), ибо он deprecated.
НЛО прилетело и опубликовало эту надпись здесь
Мне лично понравилось. Всё описано подробно и ясно. К сожалению, когда я столкнулся с такой проблемой, то не смог её решить корректно, потому что пробел в названии ссылки всё никак не хотел работать :(
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации