使用AJAX是错误的?

使用AJAX是错误的?,ajax,asp.net-mvc-3,post,Ajax,Asp.net Mvc 3,Post,我有一个视图(MVC3),用户可以从中下单。该视图绑定到我用来显示模型项的模型。此视图上有两个功能。首先输入客户详细信息,然后选择用户订购的商品。这是我用来构建另一个模型并发送回服务器端的代码: var modelItems = { ModelID: [], Amount: [] }; var serviceModel = { Name: $.trim($('#name').val()), Customernumber: $.trim($('#customern

我有一个视图(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的模型。回拨成功后,我会将new href设置为接收站点,以向用户显示已创建的内容。这一切都是可行的,但我的问题是,我希望接收[httppost]的控制器返回收据视图(OrderInfo),而不是设置新的href。有办法做到这一点吗?当使用常规表单提交时,这很容易,但是因为我的模型的值不是来自一个表单,所以会使事情复杂化。也许我不应该使用AJAX?

你可以使用AJAX中的击出JS,用JavaScript对象和普通html混合呈现你的页面。

如何使用AJAX生成部分视图并从控制器返回它?如果我使用部分视图,它不会加载到发送AJAX帖子的同一页面上吗?只是隐藏了包含部分视图,然后在ajax成功后显示部分内容并隐藏其余内容