【问题标题】:How to bind knockoutjs value to MVC Action Link (id)如何将 knockoutjs 值绑定到 MVC 操作链接 (id)
【发布时间】:2013-01-10 22:09:20
【问题描述】:

我有与 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>

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

希望你能理解我的问题

提前谢谢你

【问题讨论】:

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


    【解决方案1】:

    我不确定我是否理解您要执行的操作。但是这段代码

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

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

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

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

    【讨论】:

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

      【讨论】:

      • 小修正。 itemId 需要括号。项目标识()。但答案很直接:) 编辑 非常感谢。拯救我的一天......!!!!
      • 好点。我已更新我的答案以考虑您的评论。感谢您发现这一点。
      • 嗨,我怎样才能为 Ajax.ActionLink(...) 做同样的事情?可能吗 ? @darin-dimitrov
      • 为什么需要使用Ajax.ActionLink?您可以使用 jQuery 轻松实现相同的效果。我不认为在这种情况下使用服务器端助手会起作用。
      • 嗯...同意你的看法。我也是那么想的。刚问。谢谢:)
      猜你喜欢
      • 2017-04-16
      • 1970-01-01
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 2021-10-26
      • 2012-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多