我的MVC布局中有以下内容(位于底部):

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@Scripts.Render("~/bundles/knockout")
@Scripts.Render("~/bundles/viewmodels")

我在开发人员工具的“源”选项卡中看到了 knockout 加载。

在我的一种观点中,我必须执行以下操作:
<script type="text/javascript">ko.applyBindings(@Html.Raw(Json.Encode(Model)));</script>

但这给我一个错误:ko is not defined
尽管加载了 knockout ,为什么会发生这种情况?

最佳答案

问题是我的观点在 knockout 之前已经载入。将其推到我的Layout.cshtml的顶部:

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@Scripts.Render("~/bundles/knockout")

解决了问题。

10-07 15:44