在登陆页面中,我将绑定应用于部分视图。 ( “myModalSeeAllDrafts”)
登陆页面:
@Html.Partial("~/Views/Home/JumpStartYourJourney/_SeeAllDrafts.cshtml")
var journeyDrafts = {
dataUrl: '@Url.Action("GetSeeAllDraftsData", "Home")',
selectUrl: '@Url.Action("GetDraftJourney", "Home")',
deleteUrl: '@Url.Action("DeleteDraftBooking", "Home")'
};
var journeyDraftsVM = new JourneyDraftsViewModel(journeyDrafts);
ko.applyBindings(journeyDraftsVM, $("#myModalSeeAllDrafts")[0]);
我想重用其他视图中的部分
旅行者观点:
@Html.Partial("~/Views/Home/JumpStartYourJourney/_SeeAllDrafts.cshtml")
var url = {
dataUrl: '@Url.Action("GetSeeAllDraftsData", "Home")',
selectUrl: '@Url.Action("GetDraftJourney", "Home")',
deleteUrl: '@Url.Action("DeleteDraftBooking", "Home")',
};
var journeyDraftsViewModel = new JourneyDraftsViewModel(url);
ko.applyBindings(journeyDraftsViewModel, $("#myModalSeeAllDrafts")[0]);
我收到错误,未捕获的语法错误:您无法多次将绑定应用于同一元素。 不是这样,一旦你到了另一个页面,那个视图中的绑定已经过期了吗?
请帮忙。
答案 0 :(得分:0)
您必须更改第二个绑定:$("#myModalSeeAllDrafts")[1]
但这不是一个好方法,因为你有2个或更多元素具有相同的id:你可以发送id作为在partialview中包含元素的参数。
@Html.Partial("_SeeAllDrafts", "id2")
@Html.Partial("_SeeAllDrafts", "id1")
和部分:
@model string
<div id='@Model'>
<span data-bind="text: name"></span>
</div>
然后将绑定更改为
@section scripts
{
<script type="text/javascript">
$(function () {
var journeyDraftsViewModel = { name: "refan" };
ko.applyBindings(journeyDraftsViewModel, document.getElementById('id1'));
ko.applyBindings(journeyDraftsViewModel, document.getElementById('id2'));
});
</script>
}
--------------------- OR -----------------------
您可以使用具有不同ID的div包装部分:
<div id="id1">
@Html.Partial("_SeeAllDrafts")
</div>
<div id="id2">
@Html.Partial("_SeeAllDrafts")
</div>
$(function () {
var journeyDraftsViewModel = { name: "refan" };
ko.applyBindings(journeyDraftsViewModel, document.getElementById('id1'));
ko.applyBindings(journeyDraftsViewModel, document.getElementById('id2'));
});
然后根据此ID进行绑定。
-------------------如果你没有任何其他约束力------------------- ---
您可以在文档准备就绪之后对整页进行一次绑定。
$(document).ready(function () {
var journeyDraftsViewModel = new JourneyDraftsViewModel(url);
ko.applyBindings(journeyDraftsViewModel);
});