如何将 knockout.js 值传递给 ActionLink
How to pass knockout.js value to ActionLink
我们有一个显示 table 的 MVC 项目。 table 填充了一个 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>
直接在 hyperlink 标签上使用数据绑定属性:
<td><a data-bind="attr: { 'href': '@Url.Action("mymethod", "mycontroller")?id=' + knockoutVar() }">click me</a></td>
编辑:不确定为什么投反对票?这是经过测试的代码,将创建一个 link 指向:http://url/mycontroller/mymethod?id=1001
上面的答案对我来说似乎也是正确的,我可以看到什么是可行的唯一其他方法是你实际上不想触发服务器请求但留在 js-viewmodel 上下文中,然后你可以像这样简单地添加一个数据绑定属性:
@Html.ActionLink("clickme", "action", "controller", new { data_bind = "click: (item) => alert(item.id)" })
我们有一个显示 table 的 MVC 项目。 table 填充了一个 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>
直接在 hyperlink 标签上使用数据绑定属性:
<td><a data-bind="attr: { 'href': '@Url.Action("mymethod", "mycontroller")?id=' + knockoutVar() }">click me</a></td>
编辑:不确定为什么投反对票?这是经过测试的代码,将创建一个 link 指向:http://url/mycontroller/mymethod?id=1001
上面的答案对我来说似乎也是正确的,我可以看到什么是可行的唯一其他方法是你实际上不想触发服务器请求但留在 js-viewmodel 上下文中,然后你可以像这样简单地添加一个数据绑定属性:
@Html.ActionLink("clickme", "action", "controller", new { data_bind = "click: (item) => alert(item.id)" })