Комментарии 8
Как пример использования asp.net mvc 3 пойдет. А как припер реализации — не очень. Проще реализовать на jquery и css.
+2
Знаете, соглашусь. Действительно как пример — интересно, но вообще, считаю, что asp .net не особо популярная платформа. И как следствие, изучать asp .net, думаю, стоит разве что для расширения кругозора. Что, между тем, тоже весьма полезно.
-9
Не понимаю, за что минус, попробую аргументировать свою т.з.
Используя ajax helper мы заставляем напрягаться вебсервер немного больше, чем следовало бы. В данном случае можно было бы обойтись такой разметкой:
Так сделано у меня.
Теперь можно в css описать классы .pinned/.unpinned.
Все остальное делается на самом jquery:
А методы контроллера те же. Правда возвращать можно либо код сервера, либо еще какой-нить флаг, чтобы различать успешность/неуспешность добавления в избранное.
Мне кажется, в данном случае все намного проще.
Заодно обращусь к arinoki: Я нигде не говорил про асп.нет как про непопулярную платформу. Наоборот, кроме асп.нет я ничем не пользуюсь. А гибкость асп.нет mvc 3 меня более, чем удовлетворяет.
Используя 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 меня более, чем удовлетворяет.
+2
НЛО прилетело и опубликовало эту надпись здесь
Мне лично понравилось. Всё описано подробно и ясно. К сожалению, когда я столкнулся с такой проблемой, то не смог её решить корректно, потому что пробел в названии ссылки всё никак не хотел работать :(
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
ASP .NET MVC 3. Ajax.ActionLink в виде картинки на примере добавления в избранное звездочкой на habrahabr.ru