ASP.NET MVC AJAX: Как обновить сам ajax.actionLink на клике

StackOverflow https://stackoverflow.com/questions/1304740

  •  19-09-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

Это было полезно?

Решение

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

Вне моей головы это можно записать как следующее:

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

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

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

В случае jQuery:

$("a.updateId").html("NewName");

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top