【发布时间】:2013-09-21 07:41:30
【问题描述】:
我的 MVC 视图:
@model MG.ViewModels.Profile.ProfileDetailsViewModel
<div>
<h4>About Me</h4>
<!-- ko if: !isEditingAboutMe() -->
<p data-bind="text: aboutMe()">@Model.AboutMe</p>
@if (Model.CurrentUserCanEdit)
{
<a data-bind="click: editAboutMe">edit</a>
}
<!-- /ko -->
<!-- ko if: isEditingAboutMe() -->
@Html.TextBoxFor(model => model.AboutMe, new { data_bind = "value: aboutMe" })
<a data-bind="click: saveAboutMe">save</a>
<a data-bind="click: cancelAboutMe">cancel</a>
<!-- /ko -->
</div>
<script type="text/javascript">ko.applyBindings(@Html.Raw(Json.Encode(Model)));</script>
我的 ProfileVm Javascript:
function ProfileVm() {
var self = this;
self.saveAboutMe = function() {
self.isEditingAboutMe(false);
};
self.cancelAboutMe = function() {
self.isEditingAboutMe(false);
};
self.isEditingAboutMe = ko.observable(false);
self.editAboutMe = function() {
self.isEditingAboutMe(true);
};
}
$(document).ready(function () {
ko.applyBindings(new ProfileVm());
})
我正在通过捆绑包在 Layout.cshtml 中加载 ProfileVm:
@Scripts.Render("~/bundles/viewmodels")
我调用了 ko.applyBindings() 两次——一次直接在我的视图中将 MVC 模型绑定到可淘汰的可观察对象,另一次是绑定 ProfileVm 的属性。
我做错了什么?
【问题讨论】:
-
你为什么要同时标记版本 3 和 4?
-
@lc。因为这是使用 MVC3 和 MVC4 的人可能会遇到的问题
-
Knockout 如何理解绑定到同一个视图的两个不同视图模型?
标签: javascript asp.net-mvc knockout.js