Asp.net mvc 3 如何在MVC 3 Razor中使用knockout.js?

Asp.net mvc 3 如何在MVC 3 Razor中使用knockout.js?,asp.net-mvc-3,mvvm,razor,knockout.js,Asp.net Mvc 3,Mvvm,Razor,Knockout.js,我是新手淘汰赛.js。另外,我还在asp.NETMVC3中创建了上层中间层。我真的很想学习如何在MVC3Razor中使用knockout js?但下面的代码不起作用了,还给我空的总价。没有错误。请帮忙,谢谢 型号: public class GiftModel { public string Title { get; set; } public double Price { get; set; } } 视图: 我猜你在跟踪 你有几个错误。第

我是新手淘汰赛.js。另外,我还在asp.NETMVC3中创建了上层中间层。我真的很想学习如何在MVC3Razor中使用knockout js?但下面的代码不起作用了,还给我空的总价。没有错误。请帮忙,谢谢

型号:


  public class GiftModel
    {
        public string Title { get; set; }
        public double Price { get; set; }
    }
视图:

我猜你在跟踪

你有几个错误。第一次替换:

var initialData = @(new JavaScriptSerializer().Serialize(Model));
与:

这可以确保您的模型是正确的JSON编码的。在原始文章中,Steven Sanderson正在使用WebForms视图引擎,但您似乎正在使用Razor视图引擎。因此,请确保相应地调整语法(不要忘记,
@
razor函数会自动对输出进行html编码,与


   public class TestController : Controller
    {
        //
        // GET: /Test/

        public ActionResult Index()
        {
            var initialState = new[] {
                                     new GiftModel { Title = "Tall Hat", Price = 49.95 },
                                     new GiftModel { Title = "Long Cloak", Price = 78.25 }
                                    };
            return View(initialState);
        }

    }

var initialData = @(new JavaScriptSerializer().Serialize(Model));
var initialData = @Html.Raw(Json.Encode(Model));
@model IEnumerable<GiftModel>

<h2>Index</h2>

<p>You have asked for <span data-bind="text: gifts().length"> </span> gift(s)</p>

<script src="@Url.Content("~/Scripts/knockout-2.1.0.js")" type="text/javascript"></script>
<script type="text/javascript">
    var initialData = @Html.Raw(Json.Encode(Model));
    var viewModel = {
        gifts : ko.observableArray(initialData)
    };

    ko.applyBindings(viewModel);
</script>