代码之家  ›  专栏  ›  技术社区  ›  Surbhi Singhal

如何在成功发布后更新页面内容而不刷新页面

  •  0
  • Surbhi Singhal  · 技术社区  · 6 年前

    我有一个MVC应用程序,这是我的ajax代码。我希望我的页面内容在成功后自动更新,而不刷新页面。我看了很多文章,但找不到对我有用的东西。我有一个JStree,我想在成功后创建一个新节点,节点名在树中自动更新,而不刷新页面。

    $(".btn").click(function () {                  
                        var check = $(".newName").val();                   
                        if (check != "") {
                            $.ajax({
                                url: '@Url.Action("EditUserProfile", "Home")',
                                type: "POST",
                                cache: false,
                                data:{ folder:Name,subId:id},
                                success: function (data) {
    
                                }
                            });
                            e.preventDefault();
                        }
    
    2 回复  |  直到 6 年前
        1
  •  0
  •   Vietvo    6 年前

    您可以在不刷新的情况下更新页面内容:

    1. 确保您的方法 EditUserProfile 主控制器中有足够的参数,它们与ajax方法同名。在这种情况下,它们是: 文件夹 子ID

    2. 去除 window.location.reload(); 并获取 data.result 检查响应是否成功。

    3. 请查看我的代码:

    看法

    $.ajax({ url: '@Url.Action("EditUserProfile", "Home")', type: "POST", cache: false, data: { folder: Name, subId: id }, success: function(data) { if (data.result == true) // or something { // success } else { // fail } } });

    控制器

    public JsonResult EditUserProfile(string folder, string subId) {
        // do something
    
        return Json(new {
            result = true; // false or anything else
        });
    }
    

    原因是您对html上的数据显示不做任何操作。Ajax只是帮助您在Controller中调用该方法,而不是为您编辑当前的显示数据。

    您需要做的一切:

    • 指定包含id数据的行

    • 在Ajax返回成功值后,使用Jquery更新该行的内容。

        2
  •  0
  •   Anfath Hifans    6 年前

    尝试使用jquery load() ,则,

    $('#treeDivBlock').load(" #treeDivBlock", function() { 
         $(this).children().unwrap();
    });