Rajeshyadav12 Ответов: 0

Как сделать добавление нескольких функции нокаутом в рамках единой модели представления? И опять же, как мы можем вызвать эту 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/';
    }


Пожалуйста, помогите мне с идеей. Спасибо

0 Ответов