2012-02-01 5 views
1

У меня есть следующий код:вставить частичный вид после определенного тега

<ul> 
    <li class="comment"> 
    <p>comment 1</p> 
    <div class="info"> 
     <img src="/assets/images/i/2.jpg" width="17px" height="15px"> 
     <a>sharok</a> 
     <span>·</span> 
     <span>21.12.2012 0:00:00</span> 
     <span>·</span> 
     <a href="#"> 
        Reply</a> 
     <span>·</span> 
     <a href="#">Complain</a> 
    </div> 
    <ul> ***this is child comment 
     <li class="comment"> 
     <ul> 
      <li class="comment"> 
      <p>comment 1.1</p> 
      <div class="info"> 
       <img src="/assets/images/i/2.jpg" width="17px" height="15px"> 
       <a>sharok</a> 
       <span>·</span> 
       <span>25.12.2012 0:00:00</span> 
       <span>·</span> 
       <a href="#"> 
        Reply</a> 
       <span>·</span> 
       <a href="#">Complain</a> 
      </div> 
      <ul> 
       <li class="comment"> 

      </li> 
      </ul> 
      </li> 
     </ul> 
     </li> 
    </ul> 
    </li> 
</ul> 

Я хочу, когда пользователь нажимает на ссылку Reply затем показать мой частичный вид после div class="info".

Это мой частичный вид:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DT.KazBilet.Objects.PublicationComment>" %> 
<div class="wrap"> 
    <h4>Comment</h4> 
    <%using (Ajax.BeginForm("DoComment", "Publication", new {id = Model.Publication.OID},new AjaxOptions())) 
     {%> 
    <%if(Model.ParentCommentId != null) %> 
    <%=Html.Hidden("ParentCommentId", Model.ParentCommentId) %> 
    <%=Html.TextAreaFor(x=>x.Text) %>   
    <input type="submit" value="Publish" class="btn ok_btn" /> 
    <%}%> 
</div> 

Как я могу это сделать?

ответ

1

Это можно сделать с помощью ajax, используя функцию $.get (http://api.jquery.com/jQuery.get/). Однако вам следует просто ввести свой комментарий div прямо в HTML и скрыть его до тех пор, пока пользователь не нажмет кнопку «Ответить», а затем отобразит его (скользящий, затухающий и т. Д.) Вместо того, чтобы получать его с сервера. Поскольку каждый раз он будет одним и тем же контентом, нет смысла получать его динамически после того, как пользователь захочет опубликовать ответ.

Если вы все еще хотите, чтобы получить его динамически, сделать что-то вроде:

$(".replybtn").click(function() { 
    $.get('path/to/partial/view', function(data) { 
     $(this).parent().after(data); 
    }); 
}); 

Вы должны добавить класс кнопки/ответ ссылку, как это трудно захватить событие щелчка на нем иначе.

+0

Да, хорошая идея. Благодарю. – user348173

Смежные вопросы