如何使用 aspnet mvc helpers 和 knockoutjs

How to use aspnet mvc helpers and knockoutjs

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

@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);

谢谢!

发生这种情况是因为名称 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));