如何使用aspnet mvc helper和knockoutjs

时间:2015-01-14 22:37:31

标签: asp.net-mvc knockout.js

我有一个小应用程序,使用razor和@ html.textboxfor等典型帮助程序生成一些字段,现在,我需要使用knockoutjs,我创建了一个简单的viewmodel并将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);

谢谢!

1 个答案:

答案 0 :(得分: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));