ASP.NET MVC Ajax: как обновить сам Ajax.ActionLink по щелчку

У меня есть страница, на которой отображается список элементов с большим количеством элементов, каждый из которых имеет логическое свойство, представляющее состояние «Включено» и «Отключено».

Мне нужно предоставить пользователю ссылку для каждого элемента списка, и текст ссылки должен показывать противоположный статус (поэтому, если элемент включен, текст ссылки должен отображать «Отключено»).

Когда пользователь щелкает ссылку для параметра «Отключено», соответствующий текст ссылки для элемента должен измениться на «Включить» (и наоборот).

Я хотел бы НЕ перезагружать весь список для каждого клика, а только текст самого ActionLink, поэтому мой вопрос:

Можно ли обновить только сам ActionLink, когда пользователь щелкает ссылку, или мне нужно обработать это с помощью пользовательского javascript?


person Community    schedule 20.08.2009    source источник


Ответы (2)


Насколько я помню, вы можете добавить атрибуты HTML к тегу «a», создав анонимный класс в качестве последнего параметра для большинства перегрузок.

Навскидку это можно записать так:

Html.ActionLink("Name", "Action", "Controller", new { @class = 'updateId' });

(Возможно, вы сможете сделать это с идентификатором, который будет предпочтительнее класса, если не просто использовать уникальное имя класса, чтобы избежать обновления нескольких элементов.)

Затем вы можете использовать javascript для доступа к классу «updateId» и изменить внутренний html.

В случае jQuery:

$("a.updateId").html("NewName");
person Ryall    schedule 20.08.2009

Это можно сделать с помощью пользовательского элемента управления, содержащегося в элементе для обновления. описание решения можно найти здесь. Никаких пользовательских сценариев на стороне клиента не требуется.

person Mark Seemann    schedule 07.09.2009