使用AJAX是错误的?
我有一个视图(MVC3),用户可以从中下单。该视图绑定到我用来显示模型项的模型。此视图上有两个功能。首先输入客户详细信息,然后选择用户订购的商品。这是我用来构建另一个模型并发送回服务器端的代码:使用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
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成功后显示部分内容并隐藏其余内容