[英]How to use Knockout.js in asp.net mvc Razor correctly and sufficiently?
我尝试在asp.net mvc剃须刀上学习knockout.js。 我一直在编码下面的代码来学习和测试自己,但是View方面向我抛出了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代码。 错误消失。 我不明白为什么第一次使用不正确? 我读了达林·迪米特罗夫的回应:
<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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.