【问题标题】:ajax append multiple times to same divajax 多次附加到同一个 div
【发布时间】:2014-10-20 16:37:56
【问题描述】:

假设我有一个局部视图,它只是一个用于输入一些数据的编辑器框(asp.net 应用程序)

@Html.Editor("New", new { htmlAttributes = new { @class = "my_editor" } })

在我的主视图中,我想使用上面提到的部分视图更新一个部分,使用 ajax 调用。

<div id="editor_section"></div>

我的问题是,是否可以使用相同的局部视图连续附加到相同的 div。也就是说,我调用了一次ajax,就出现了一个新的输入框。然后我再次单击 ajax 链接,显然第二个输入框来自同一个局部视图。每次在其他输入框下方附加一个新输入框时,我应该能够继续执行此操作多次。

【问题讨论】:

    标签: javascript jquery html ajax asp.net-mvc


    【解决方案1】:

    是的,这是可能的,但效率不高。您应该只需要进行一次 AJAX 调用,然后您可以将从部分视图中获得的 html 缓存在 JavaScript 变量中,因此当您稍后附加它时,您不必往返于服务器进行检索您已经请求的 HTML。

    类似:

    var inputHtml = null;
    
    var appendInput = function () {
        if (!inputHtml) {
            $.get('/input', function (data) {
                inputHtml = data;
                $('#someDiv').append(inputHtml);
            });
        } else {
            $('#someDiv').append(inputHtml);
        }
    };
    

    【讨论】:

    • 所以一次检索可能 3 个输入框以防我以后需要它们?如果我需要更多,那么再次调用 ajax,否则如果我不再需要,那么我已经准备好了? - 你能包括一个如何附加到 div 的例子吗?
    • 您只需通过 AJAX 检索一次输入。之后,您已经拥有了 HTML,因此不需要进一步的 AJAX 调用。请参阅我的编辑。您将输入的 HTML 存储在一个全局变量中。
    • ohhhh 好的我明白了,我正在尝试,谢谢!
    • 我一定会的!!! - 我有一个问题,我是 jqery/javascript 的新手,'/input' 字符串是指向局部视图还是指向我的控制器的 ActionMethod?
    • 另外,当我将 javascript 放在
    猜你喜欢
    • 2019-11-18
    • 2013-02-05
    • 2020-01-30
    • 2012-10-17
    • 1970-01-01
    • 2018-11-30
    • 2015-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多