0

我有一个创建新公司的观点。

公司有多个行业,或者其中 1 个是初级行业。因此,当我输入该公司的交易时,我通过自动完成选择交易,并且该交易被添加到自动完成文本框下方的交易网格中。网格包含作为隐藏字段的 tradeId、交易和一个单选按钮以指示该交易是否是主要交易和一个删除按钮。

这是包含其他公司详细信息(例如地址)的表单的一部分。现在我想知道我是否可以使用敲除和(也许)jsrender 来填充网格而不发布到服务器?

当我填写了网格和其他公司的详细信息后,我想将数据提交给控制器 post 方法。

通常我使用 Html 助手将值发布到控制器,但我不知道如何使用敲除来做到这一点。

4

1 回答 1

1

是的,您可以为此使用 Knockout。如果您还没有查看教程,请尝试此Knockout List and Collections 教程。这应该为您指明正确的方向。您需要做的是创建一个具有可观察属性的 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());
于 2013-01-06T19:12:37.713 回答