Как передать значение knockout.js в ActionLink - PullRequest
0 голосов
/ 08 октября 2019

У нас есть проект MVC, который отображает таблицу. Таблица заполняется массивом knockout.js. Я хотел бы иметь возможность передавать значение в Actionlink (), как показано ниже, но «knockoutVar» не распознается.

Возможно ли сделать что-то подобное?

<!-- ko foreach: $root.myFileList -->
  <tr>
   <td data-bind="text: Document"></td>
   <td> @Html.ActionLink("click me", "mymethod", "mycontroller", new {id = knockoutVar }, null)      </td>

Ответы [ 2 ]

0 голосов
/ 09 октября 2019

Приведенный выше ответ мне тоже кажется правильным, единственный другой способ увидеть, что что-то выполнимое, это то, что вы на самом деле не хотите инициировать запрос к серверу, а остаетесь в контексте js-viewmodel, тогда выможно просто добавить атрибут привязки данных следующим образом:

@Html.ActionLink("clickme", "action", "controller", new { data_bind = "click: (item) => alert(item.id)" })
0 голосов
/ 08 октября 2019

Используйте атрибут привязки данных непосредственно к тегу гиперссылки:

<td><a data-bind="attr: { 'href': '@Url.Action("mymethod", "mycontroller")?id=' + knockoutVar() }">click me</a></td>

Редактировать: Не уверены, почему отказались? Это проверенный код, и будет создана ссылка, указывающая на: http://url/mycontroller/mymethod?id=1001

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...