【问题标题】:How to use aspnet mvc helpers and knockoutjs如何使用 aspnet mvc helpers 和 knockoutjs
【发布时间】:2015-01-14 22:37:30
【问题描述】:

我有一个小型应用程序,它使用 razor 和 @html.textbox 之类的典型助手生成一些字段,现在,我需要使用 knockoutjs,我创建了一个简单的视图模型并将 data-bind 属性与每个助手一起放置,但是问题是该字段的值是干净的,我认为如果文本框被清除并且我需要使用这个值,我认为对于敲除绑定值,我的代码是:

@Html.TextBoxFor(model => model.Name, new { @class = "form-control ancho_100", @data_bind = "value:name" })
var userViewModel = function () {
    var self = this;
    self.name = ko.observable();
}

var model = new userViewModel();
ko.applyBindings(model);

谢谢!

【问题讨论】:

    标签: asp.net-mvc knockout.js


    【解决方案1】:

    发生这种情况是因为 observable 名称中没有值。通常你会将模型映射到 json。首先,您将 ViewModel 更改为接受用于填充 ViewModel 的模型。

    var UserViewModel = function (model) {
        var self = this;
        self.name = ko.observable(model.Name);
    }
    

    然后将 asp.net 模型序列化为 json,然后将其传递给 ViewModel 的构造函数。我建议以大写字母开头声明模型,以便与包含 ViewModel 对象的变量区分开来。

    var model = @Json.Encode(Model);
    ko.applyBindings(new UserViewModel(model));
    

    【讨论】:

    • 嗨,韦恩,谢谢,我试试看,然后改成@Html.Raw(Json.Encode(Model));但是双向绑定不起作用
    • 嗨,韦恩,谢谢,问题在于我在局部视图中使用它,但我已修复它,谢谢。
    猜你喜欢
    • 2010-09-11
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 2017-04-20
    • 2012-02-02
    • 2018-01-22
    • 1970-01-01
    相关资源
    最近更新 更多