gpt4 book ai didi

asp.net-mvc-3 - 使用razor设置knockout View 模型的初始值

转载 作者:行者123 更新时间:2023-12-02 17:58:18 25 4
gpt4 key购买 nike

我觉得很奇怪,我找不到任何有关如何动态填充 Knockout View 模型的信息。我猜我的搜索词不正确或者是什么。

无论如何,因为我使用的是 Asp.Net MVC 3,并且第一次只会对一个特定页面使用 knockout ,所以我希望能够以某种方式使用 Razor 模型插入 knockout 。

@Html.TextBoxFor(m => m.PropertyName, new { data_bind = "value: name" })

我认为这不起作用,因为即使 Razor 用 PropertyName 填充字段,它也会在绑定(bind)之前发生,因此它不会强制将其值强制传递给 knockout View 模型。

        var viewModel = {
name: ko.observable(@GetPoertyNameUsingRazorSomehow)
};

这也不起作用,至少在我看来不起作用。

由于我们通常可以使用 MVC 3 轻松获取 RazorModel 数据,因此我确信我们可以以某种方式将其注入(inject)到 Knockout viewModel 中。我还没有看到任何解释如何操作的教程。我错过了什么?

最佳答案

我在 Json.NET 之上创建了一个小库,就是为了这样的场合:

https://github.com/paultyng/FluentJson.NET

您可以在 Razor View 中创建 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 上。

关于asp.net-mvc-3 - 使用razor设置knockout View 模型的初始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8038710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com