Как сделать добавление нескольких функции нокаутом в рамках единой модели представления? И опять же, как мы можем вызвать эту viewmodel в MVC view для запуска приложения?
Я пишу приложение CRUD, используя ASP.NET MVC, KnockoutJS и база данных. Когда я пишу отдельный viewmodel для Create, Read, Update и Delete.и вызываю каждый viewmodel в отдельном представлении (Create, Read, Update и Delete), то он работает нормально. Но когда я включаю все viewmodel в одну единственную viewmodel, то вызываю эту viewmodel в каждом представлении. Тогда я не умею ни создавать, ни редактировать.
Пожалуйста, помогите мне с этим. Я перепробовал так много способов, но не смог найти правильного решения.
Что я уже пробовал:
Я написал эту функцию с помощью нокаута:
$(function () { ko.applyBindings(modelView); }); var parsedSelectedCourse = $.parseJSON(selectedCourse); var modelView = { Read: { Courses: ko.observableArray([]), viewCourses: function () { var thisObj = this; try { $.ajax({ url: '/Home/ListCourses', type: 'GET', dataType: 'json', contentType: 'application/json', success: function (data) { thisObj.Courses(data); //Here we are assigning values to KO Observable array }, error: function (err) { alert(err.status + " : " + err.statusText); } }); } catch (e) { window.location.href = '/Home/Read/'; } } }, Create: { CourseName: ko.observable(), CourseDescription: ko.observable(), createCourse: function () { try { $.ajax({ url: '/Home/Create', type: 'post', dataType: 'json', data: ko.toJSON(this), //Here the data wil be converted to JSON contentType: 'application/json', success: successCallback, error: errorCallback }); } catch (e) { window.location.href = '/Home/Read/'; } } }, Update: { CourseID: ko.observable(parsedSelectedCourse.CourseID), CourseName: ko.observable(parsedSelectedCourse.CourseName), CourseDescription: ko.observable(parsedSelectedCourse.CourseDescription), updateCourse: function () { try { $.ajax({ url: '/Home/Update', type: 'POST', dataType: 'json', data: ko.toJSON(this), contentType: 'application/json', success: successCallback, error: errorCallback }); } catch (e) { window.location.href = '/Home/Read/'; } } }, Delete: { CourseID: ko.observable(parsedSelectedCourse.CourseID), CourseName: ko.observable(parsedSelectedCourse.CourseName), CourseDescription: ko.observable(parsedSelectedCourse.CourseDescription), deleteCourse: function () { try { $.ajax({ url: '/Home/Delete', type: 'POST', dataType: 'json', data: ko.toJSON(this), contentType: 'application/json', success: successCallback, error: errorCallback }); } catch (e) { window.location.href = '/Home/Read/'; } } } }; function successCallback(data) { window.location.href = '/Home/Read/'; } function errorCallback(err) { window.location.href = '/Home/Read/'; }
Пожалуйста, помогите мне с идеей. Спасибо