Jquery Ajax调用后刷新屏幕
在下拉列表更改后,我向控制器打电话,该下拉列表应返回屏幕的一组新数据,并刷新屏幕Jquery Ajax调用后刷新屏幕,jquery,ajax,asp.net-mvc,Jquery,Ajax,Asp.net Mvc,在下拉列表更改后,我向控制器打电话,该下拉列表应返回屏幕的一组新数据,并刷新屏幕 function refresh() { var orderId = $(".cmbFilter").val(); var accountId = $(".accountId").val(); $.ajax({ url: '@Url.Action("Transactions", "Transaction")', type
function refresh() {
var orderId = $(".cmbFilter").val();
var accountId = $(".accountId").val();
$.ajax({
url: '@Url.Action("Transactions", "Transaction")',
type: "POST",
contentType: "application/json",
data: JSON.stringify({ bankAccountId: accountId, filterId: orderId }),
cache: false,
async: true,
success: function (result) {
if (result.Success == 'true') {
} else {
}
},
error: function () {
alert("Oh no...");
}
});
return (false);
调用完成后,控制器中的断点被命中。。。但在新型号返回后,屏幕不会刷新。如何使屏幕刷新
我想更简单的方法是这样的:
function refresh() {
var orderId = $(".cmbFilter").val();
var accountId = $(".accountId").val();
window.location = '@Url.Action("Transactions", "Transaction", new {bankAccountId = orderId, filterId = accountId })';
}
但是,它不喜欢我的参数(即使我使用orderBy和accountId)。最后一次尝试有什么问题
表示“找不到符号orderId和accountId”我在您的情况下所做的:
当发出Ajax请求时,屏幕不会刷新(这是一件好事),如果要更新视图,必须更新Ajax成功处理程序中的DOM。如果您不想这样做,您可以始终不使用ajax进行整页刷新。。为此,我想我需要对视图进行一次完全刷新?orderId、accountId是客户端javascript变量,@Url.Action是服务器端代码,显然服务器端代码无法访问客户端变量。在这种情况下,您必须在客户端生成url和查询字符串。在我看来,我有一个基于模型列表中的值构建的表。此列表将刷新,因此我需要刷新表。我可以在这个查询中这样做吗?或者我需要重新加载整个页面吗?但javascript/jquery对列表一无所知。您已经以JSON格式发送了数据,由客户端将返回的数据放入DOM。好的,我编辑了我的问题。你能在我第二次尝试时发现问题吗?你已经向服务器发送了数据。服务器已响应您忽略的数据。您可以对Ajax调用返回的数据执行某些操作,也可以向服务器进行完全提交,服务器将重建所有内容并重新加载页面。当然,这违背了使用AJAX调用的目的……避免重新加载。您的第二次尝试……是从屏幕上获取旧值。但这并不重要,因为您没有将它们传递到窗口。位置更改。
if (result.Success == 'true')
{
// refresh your drop down here
}
else
{
// do you really want to hide and ignore error messages?
}