我试图用ASP MVC 3的“Razor”视图引擎实现
this Knockout example。
第一个主题涵盖使用标准ASP视图引擎的C#数组的简单数据绑定。我正在尝试使用“Razor”的示例示例,这行:
<script type="text/javascript"> var initialData = <%= new JavaScriptSerializer().Serialize(Model) %>; </script>
导致initialData的空变量。
我也试过这个:
@{ string data = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Model); }
然后指定initialData,如下所示:
var initialData = @Html.Raw(data);
这将使用数据集填充initialData,但绑定不起作用。
我只是试图数据绑定这个集合,以显示一些想法,如下例所示:
<p>You have asked for <span data-bind="text: gifts().length"> </span> gift(s)</p>
为什么数据绑定在这种情况下工作?
解决方法
MVC3最简单的方法是:
var initialData = @Html.Raw(Json.Encode(Model));