Необходимо выбрать строки из одного частичного и добавить их к строкам в другом частичном в ASP.NET MVC 3 и системе на основе knockout.js - PullRequest
0 голосов
/ 14 марта 2012

Я занимаюсь разработкой веб-сайта ASP.NET MVC с помощью knockoutjs. Для одного из экранов нам нужны два частичных представления (скажем, Частичные A и B) в двух делениях соответственно. Каждое частичное имеет свою собственную модель, ограниченную элементом div, в котором находится частичное. Модели используются нокаутом для данных и функциональности на странице.

Partial A имеет некоторые функции поиска, которые возвращают ряд строк с флажками. Пользователь может установить эти флажки и нажать кнопку. При нажатии этих кнопок мне нужно передать поле идентификатора для всех проверенных строк в метод, который будет извлекать данные для этих идентификаторов, а затем добавить строки данных в частичную B.

Я уже могу заполнить Partial B с помощью вызова ajax, сделанного из метода javascript, определенного в модели для Partial B. В свою очередь, вызов ajax извлекает данные из метода контроллера. Однако я не знаю, как вызвать метод javascript из частичного A (который не имеет доступа к модели частичного B) и как передать выбранные данные в метод javascript.

Как мне это сделать?

1 Ответ

0 голосов
/ 14 марта 2012

Если я вас правильно слышу, вы можете сделать это, имея одну модель представления с двумя моделями, что является довольно распространенным явлением. Так что-то вроде этого:

var viewmodel = function(){
    var 
        self = this,
        self.modelA = { ... },
        self.modelB = { ... },
        self.fetchRowsForB = function () { ... },
        self.fetchCheckedRowsFromA = function(){ ... }
};

Однако вы сказали, что частичные лица не знают друг о друге. Таким образом, другой вариант мог бы иметь основную модель вида, подобную этой:

var masterVM = function(){
    var 
        self = this,
        vmA = function() { ... },
        vmB = function() { ... },
        functionThatTalksBetweenTheTwo = function() { ... }    

};

Это позволяет вам разделить две виртуальные машины, но когда они соединены, они могут общаться друг с другом.

...