Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Ajax调用后刷新屏幕_Jquery_Ajax_Asp.net Mvc - Fatal编程技术网

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”

我在您的情况下所做的:

  • 将html表放在局部视图中
  • 创建控制器操作以检索数据、返回数据等
  • 在主视图上放置一个div(id=“myDiv”),其中包含RenderAction(“MyNewAction”),以获得表/局部视图的初始加载
  • 在某些操作上,对新操作进行ajax调用(注意内容类型的更改)
  • 使用调用新操作的结果“重新填充”表:

    contentType:“html”, 成功:功能(结果){ $(“#myDiv”).html(结果); }


  • 当发出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?
    }