如何将knockoutjs值绑定到MVC Action Link(id)

时间:2013-01-27 12:30:15

标签: asp.net-mvc-3 data-binding mvvm knockout.js knockout-mvc

我有表视图与knockoutjs模型绑定。

<tbody data-bind="foreach: items, visible: items().length > 0">
    <tr>
        <td data-bind="text: Title"></td>
        <td data-bind="text: Type"></td>
        <td data-bind="text: Author"></td>
        <td data-bind="text: Description"></td>
        <td data-bind="text: Time"></td>
        <td data-bind="text: Publisher"></td>
        <td data-bind="text: itemId"></td>
        <td>@Html.ActionLink("Edit", "Edit", "Manager", new {id = <knockoutjs model itemId value here>}, new {@class = "cssClass"})</td>
    </tr>       
</tbody>

我将解释代码。我有knockoutjs模型,其中包含itemArray(items)。我想创建actionlink并将id值绑定到来自knockoutjs模型的(itemId)。

希望您理解我的问题

提前谢谢

2 个答案:

答案 0 :(得分:24)

<a data-bind="attr: { 'href': '@Url.Action("Edit", "Manager")/' + itemId() }" class="cssClass">
    Edit
</a>

答案 1 :(得分:1)

我不确定我明白你要做什么。但是这段代码

<td>@Html.ActionLink("Edit", "Edit", "Manager", new {id = <knockoutjs model itemId value here>}, new {@class = "cssClass"})</td>

不起作用,因为knockout是客户端javascript,而剃刀语法在服务器中执行并且只呈现html字符串。

为什么不用普通的html超链接替换@ Html.ActionLink

<a href="someurl" data-bind="attr: { href: Link }, text: SomeField"></a>