我认为我创建了一家新公司。
该公司有多个行业,或者哪一个是主要贸易。 因此,当我输入该公司的交易时,我通过自动填充选择交易,并将此交易添加到自动填充文本框下方的交易网格中。网格包含tradeId作为隐藏字段,交易和单选按钮,用于指示交易是主要交易还是删除按钮。
这是包含其他公司详细信息(如地址)的表单的一部分。 现在我想知道我是否可以使用knockout和(也许)jsrender填充网格而不发布到服务器?
当我填写网格和其他公司详细信息时,我想将数据提交给控制器发布方法。
通常我使用Html帮助器将值发布到控制器,但我看不出如何使用knockout来做到这一点。
答案 0 :(得分:1)
是的,您可以使用Knockout进行此操作。如果您尚未检查教程,请尝试此Knockout List and Collections tutorial。这应该指向正确的方向。您需要做的是创建具有可观察属性的Trade对象,并在单独的挖空视图模型中创建一个observableArray来存储交易对象。有关发布到服务器的信息,在同一位置还有其他教程。
function Trade(item) {
var self = this;
self.tradeId = ko.observable(item.tradeId);
self.tradeName = ko.observable(item.tradeName);
self.isPrimary = ko.observable(item.isPrimary);
}
function TradesViewModel() {
var self = this;
// Editable data
self.trades = ko.observableArray([]);
self.removeTrade = function(trade) { self.trades.remove(trades) }
self.save = function() {
$.post("/controller/action", self.trades);
}
}
ko.applyBindings(new TradesViewModel());