0
我嘗試在asp.net mvc剃鬚刀上學習knockout.js。我一直在編碼下面的代碼來學習和測試我自己 但查看方拋出我一個JS錯誤。如何在asp.net mvc Razor中正確,充分地使用Knockout.js?
「var model = @ Html.Raw(Json.Encode(Model));」錯誤:Microsoft JScript中的運行時錯誤:「fromJSON」無法獲得屬性的值:對象爲空或未定義
控制器:
[HttpGet]
public ActionResult GetGift()
{
GiftModel gift = new GiftModel();
gift.Price = 120;
gift.Title = "Test";
return View(gift);
}
View:
@using System.Web.Script.Serialization;
@model knockout1.Models.GiftModel
@{
ViewBag.Title = "GetGift";
}
<h2>GetGift</h2>
<script src="/Scripts/knockout-2.1.0.js" type="text/javascript"></script>
<script type="text/javascript">
var initialData = @Html.Raw(new JavaScriptSerializer().Serialize(Model));
var viewModel = ko.mapping.fromJSON(initialData);
$(document).ready(function() { ko.applyBindings(viewModel); });
</script>
<p>Title: <strong data-bind="text: Title"></strong></p>
<p>Price: <strong data-bind="text: Price"></strong></p>
但我改變了我的js代碼。錯誤消失。我無法理解第一個用法爲什麼不正確?我readed達林季米特洛夫的迴應:
<script type="text/javascript">
var jsonResultData = @Html.Raw(Json.Encode(Model));
</script>
我:(這是工作好。)
<script type="text/javascript">
$(function()
{
var model = @Html.Raw(Json.Encode(Model));
// Activates knockout.js
ko.applyBindings(model);
});
</script>
請問你能發佈確切的錯誤信息嗎?爲了使用'ko.mapping.fromJSON',您需要引用ko映射插件http://knockoutjs.com/documentation/plugins-mapping.html – nemesv
Microsoft JScript運行時錯誤:'fromJSON'無法獲取值的屬性:對象是空的或未定義我改變了我的Que。 – programmerist
是的,現在基於錯誤消息,我們肯定缺少映射插件的腳本引用。你可以從這裏下載:https://github.com/SteveSanderson/knockout.mapping/tree/master/build/output min和debug版本。 – nemesv