3

我的视图模型“IdOfInvitedSocialCompaigns”中有一个可观察的数组,该属性包含 id 数组,我想创建这样的链接:

  @Html.ActionLink("Compaign","Confirmation", new {socialbuzzCompaignId = id})

我怎样才能用 knockoutjs 建立这样的链接,这是 viewmodel 的一部分:

  function DashboardViewModel() {
    var self = this;        
    self.IdOfInvitedSocialCompaigns = ko.observableArray([]);
   }
4

1 回答 1

5

如果您获得了转义权,您也许可以将部分 Razor 生成的 URL 直接构建到您的绑定标记中,但这会很混乱。我可能会在 DashboardViewModel 上定义一个基本 URL 属性,该属性由 DOM 上的页面填充,如下所示:

dashVM.urls.confirmCampaignUrl = '@(Url.Action("Campaign", "Confirmation"))';

然后有一个获取特定 URL 的函数:

self.getCampaignConfirmationUrl = function(id) {
    return self.urls.confirmCampaignUrl + '/' + id;
};

像这样绑定:

<!-- ko foreach: IdOfInvitedSocialCompaigns  -->
<a data-bind="attr: { href: dashVM.getCampaignConfirmationUrl($data) }">Confirm</a>
<!-- /ko -->
于 2012-07-23T02:07:31.373 回答