2014-10-20 96 views
0

假设我有只是一个编辑框,在我主视图输入一些数据(asp.net应用程序)AJAX多次追加到同一个div

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

的局部视图,我有一节,我想用上面提到的使用ajax调用的局部视图进行更新。

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

我的问题是,是否有可能使用相同的局部视图连续追加到相同的div。换句话说,我调用一次Ajax,并出现一个新的输入框。然后我再次点击ajax链接,第二个输入框显然来自相同的局部视图。而且我应该能够继续这么做,因为每次我在其他人下面添加一个新的输入框时,我都会这么做。

回答

2

是的,这是可能的,但效率不高。您只需要进行一次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); 
    } 
}; 
+0

所以在时间的情况下,获取也许3个输入框,我需要他们以后呢?如果我需要更多,然后再次调用ajax,否则,如果我不再需要,那么我都准备好了吗? - 你能包括一个如何附加到div的例子吗? – 2014-10-20 16:44:16

+1

您只需要通过AJAX检索输入一次。之后,你已经有了HTML,所以不需要进一步的AJAX调用。看我的编辑。您将输入HTML存储在全局变量中。 – 2014-10-20 16:55:16

+0

ohhhh好吧我明白了,我现在正在尝试,谢谢! – 2014-10-20 17:02:40