Неправильно использовать AJAX? - PullRequest
0 голосов
/ 23 марта 2012

У меня есть представление (MVC3), с которого пользователи размещают заказы. Представление привязано к модели, которую я использую для отображения элементов модели. В этом представлении есть две функциональные возможности. Сначала вы вводите данные о клиентах, а затем выбираете товары, которые заказал пользователь. Это код, который я использую для построения другой модели для отправки обратно на сервер:

var modelItems = {
    ModelID: [],
    Amount: []
};

var serviceModel = {
    Name: $.trim($('#name').val()),
    Customernumber: $.trim($('#customernumber').val()),
    Address1: $.trim($('#address1').val()),
    Address2: $.trim($('#address2').val()),
    Zipcode: $.trim($('#zipcode').val()),
    City: $.trim($('#city').val()),
    Country: $.trim($('#country').val()),
    Phone: $.trim($('#phone').val()),
    Mobile: $.trim($('#mobile').val()),
    Email: $.trim($('#email').val())
};

$('div.modelSpan').each(function (i) {
        var textBox = $(this).children();
        var value = $(textBox).val();

        if (value != '0' && value != '') {
            var modelID = $(textBox).attr('name');
            modelItems.ModelID.push(modelID);
            modelItems.Amount.push(value);
        }
    });

var accessory = {
            ModelItems: modelItems,
            ServiceModel: serviceModel
        };

        $.ajax({
            url: '/Site/Order', //Renamed sec reasons
            type: "POST",
            data: JSON.stringify(accessory),
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            success: function (ordernumber) {
                window.location.href = "/Site/OrderInfo/" + businessAB + "/" + ordernumber;
            },
            error: function () {
                alert('error'); 
            }
        });  

Крутая вещь в MVC3 заключается в том, что мой аксессуар автоматически связывается с моей моделью на стороне сервера, которая называется AccessoriesModel. При успешном обратном вызове я устанавливаю новый href на сайт получения, чтобы показать пользователю, что было создано. Это все работает, но моя проблема в том, что я хотел бы, чтобы представление квитанции (OrderInfo) было возвращено из моего контроллера, который получает [httppost] и не устанавливает новый href. Есть ли способ сделать это? Это легко при использовании регулярной отправки формы, но поскольку значения для моей модели не взяты из одной формы, это усложняет ситуацию. Может быть, я не должен использовать AJAX?

1 Ответ

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

Вы можете использовать нокаут JS с Ajax и визуализировать свои страницы с помощью смеси объектов JavaScript и обычного HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...