Ajax调用后刷新屏幕

时间:2014-01-20 20:13:35

标签: jquery ajax asp.net-mvc

在更改下拉列表后,我会调用我的控制器,这会为屏幕返回一组新数据,然后刷新屏幕。

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”

2 个答案:

答案 0 :(得分:1)

我在你的情况下做了什么:

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

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

答案 1 :(得分:0)

if (result.Success == 'true') 
{
    // refresh your drop down here
} 
else 
{
    // do you really want to hide and ignore error messages?
}