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