我发现很奇怪,我无法找到有关如何动态填充Knockout视图模型的任何信息.我猜我的搜索字词是不正确的. 无论如何,因为我正在使用Asp.Net MVC 3并且我第一次使用基于一个特定页面的淘汰赛
无论如何,因为我正在使用Asp.Net MVC 3并且我第一次使用基于一个特定页面的淘汰赛,我希望我能以某种方式使用Razor模型插入淘汰赛.
@Html.TextBoxFor(m => m.PropertyName, new { data_bind = "value: name" })
我认为这不起作用,因为即使剃刀使用PropertyName填充字段,它也会在绑定之前发生,因此它不会强制它对knockout viewmodel的值.
var viewModel = { name: ko.observable(@GetPoertyNameUsingRazorSomehow) };
这也不起作用,至少我不明白.
由于我们可以通过MVC 3轻松获取RazorModel数据,因此我确信我们可以将它注入到Knockout viewModel中.我还没有看到任何解释如何的教程.我错过了什么?
我在Json.NET上创建了一个小型库,用于这样的场合:https://github.com/paultyng/FluentJson.NET
你可以像这样在Razor视图中创建JSON(注意Knockout扩展方法):
@JsonObject.Create() .AddProperty("name", "value") .AddProperty("childObject", c => { .AddProperty("childProperty", "value2") }) .AddObservable("knockoutProperty", 123)
这将产生类似于此的JSON:
{"name":"value","childObject":{"childProperty":"value2"},"knockoutProperty":ko.observable(123)}
Knockout方法通过扩展方法添加,其他东西也可以轻松扩展.
如果您需要,该套餐在Nu-Get上.