状況は次のとおりです。Razor で生成されたアイテムのリストがあります (Razor で生成されたままにする必要があります)。
@model MG.ViewModels.Profile.ProfileDetailsViewModel
foreach (var interest in Model.Interests)
{
<span class="subject-title">@interest.SubjectName</span>
<a data-bind='click: function(){viewDescription(@Html.Raw(Json.Encode(interest)))}'class="subject-description-button" href="#" title="View Details">details</a>
}
viewDescription
ユーザーは、 javascript 関数のモデルをエンコードする「詳細」リンクをクリックして、各項目の詳細を更新できます。
self.viewDescription = function (data) {
// pull data into KO observables
self.selectedInterestDescription(data.Description);
self.selectedInterestSubject(data.SubjectName);
self.selectedInterestId(data.InterestId);
self.triggerModal(true);
};
トリガーされるモーダル内で、ユーザーは説明を更新するエンドポイントに AJAX 要求を送信できます。これは私が期待するように機能しています。
私が苦労しているのは、ユーザーが更新を完了しても、かみそりにModel
はまだ古いデータがあるということです。そのため、ユーザーが更新後に Razor によって生成されたリストから [詳細] をクリックすると、古い@model
データがエンコードされます。 更新されたデータをJavaScript からプッシュするにはどうすればよいですか?@Model