0

我有一个 mvc 网格。

每条记录旁边都有一个删除按钮。

这个删除按钮对应于一个动作 DeleteRecord。该操作删除此记录并执行 RedirectToAction("MyGrid");。

这很好用,但令人讨厌的是我的重定向操作会导致整个页面重新加载。这是我试图远离的事情,但似乎无法解决这个问题。

我是这样开始的。

/MyApp/MyGrid  => click delete
/MyApp/DeleteRecord => redirect
/MyApp/MyGrid => full reload of page

也许这是不可能的,但我尝试通过使用覆盖操作和具有不同操作名称的操作来做到这一点,但这并没有解决我的完全重新加载问题。我是 MVC 的新手,所以也许这甚至是不可能的。我在想,如果我只是在客户端做了一个 ajax.post,我可以摆脱这个问题,但我想得越多,它就越有可能最终以相同的动作执行相同的重定向。

关于如何解决这种情况的任何想法?

4

1 回答 1

0

实际上,我最终只是绑定了网格的回调函数和网格函数的内联删除,并且它起作用了。虽然,非常骇人听闻,它通过希望进入内联网格删除代码来阻止完整的帖子。虽然,您不能指望回调 javascript 例程按顺序运行,因为这正是 javascript 正常工作的方式。; ○

s.SettingsEditing.DeleteRowRouteValues = new { Controller = "Home", Action = "DeleteRecordGrid" };

s.ClientSideEvents.EndCallback = "function(s,e) { OnEndCallback(s, e, 'delete') }";

<script type="text/javascript">

    function deleteWithoutPostback(eVisibleIndex) {
        var okToDelete = confirm("Do you really want to delete this record?");
        if (okToDelete == true) {
            myGrid.DeleteRow(eVisibleIndex);
            myGrid.ClearFilter();
        } else {
            return;
        }
    }

    function OnEndCallback(s, e, callType) {
        if (typeof callType == 'undefined') {
            if (callType == 'delete') {
                myGrid.Refresh();
            }
        }
    }

</script>
于 2013-04-30T22:41:41.730 回答