3

ビューモデル "IdOfInvitedSocialCompaigns" に監視可能な配列があり、このプロパティには id の配列が含まれており、次のようなリンクを作成したい:

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

ノックアウトjsでこのようなリンクを作成するにはどうすればよいですか。これは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 に答える