与knockoutjs创建链接

uce*_*cef 3 asp.net-mvc-3 knockout.js

我在我的viewmodel"IdOfInvitedSocialCompaigns"中有一个可观察的数组,这个属性包含id数组,我想创建这样的链接:

  @Html.ActionLink("Compaign","Confirmation", new {socialbuzzCompaignId = id})
Run Code Online (Sandbox Code Playgroud)

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

  function DashboardViewModel() {
    var self = this;        
    self.IdOfInvitedSocialCompaigns = ko.observableArray([]);
   }
Run Code Online (Sandbox Code Playgroud)

Tom*_*all 5

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

dashVM.urls.confirmCampaignUrl = '@(Url.Action("Campaign", "Confirmation"))';
Run Code Online (Sandbox Code Playgroud)

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

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

如此约束:

<!-- ko foreach: IdOfInvitedSocialCompaigns  -->
<a data-bind="attr: { href: dashVM.getCampaignConfirmationUrl($data) }">Confirm</a>
<!-- /ko -->
Run Code Online (Sandbox Code Playgroud)