вставить частичный вид после определенного тега - PullRequest
1 голос
/ 01 февраля 2012

У меня есть следующая разметка:

<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 Ответ

2 голосов
/ 01 февраля 2012

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...