Asp.net-Mvc
在視圖中使用 ko 時,ko.applyBindings 給出錯誤“ko 未定義”
我的 MVC 佈局中有以下內容(在底部):
@Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap") @Scripts.Render("~/bundles/knockout") @Scripts.Render("~/bundles/viewmodels")我在開發人員工具的“源”選項卡中看到了淘汰賽載入。
在我的一種觀點中,我必須做到以下幾點:
<script type="text/javascript">ko.applyBindings(@Html.Raw(Json.Encode(Model)));</script>但這給了我一個錯誤:
ko is not defined為什麼會發生這種情況,儘管已經載入了淘汰賽?
問題是我的視圖是在淘汰賽之前載入的。將它推到我的 Layout.cshtml 的頂部:
@Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap") @Scripts.Render("~/bundles/knockout")修復了問題。
您也應該將**@ko.Apply(Model)**放在頁面底部,而不是在頁面頂部拉腳本。
以下程式碼將解決您的問題
@section scripts{ @ko.Apply(Model) }記得在佈局視圖上聲明一個腳本部分,否則會導致異常
@RenderSection("scripts", required: false)