2015-11-06 2 views
0

У меня есть подробный вид, в котором будет разговор и даже поле комментариев в разговоре. У меня был блок комментариев с частичным представлением. но возникла проблема, когда решили обновить только разговор о создании комментария. Я знаю, что могу связать ниже код на частичном изображении. но мне трудно вызвать метод действий для него. Так будет подробно просмотреть код, а затем ниже кодОбновить частичный вид в mvc

<div class="row"> 
    <div class="panel-group" id="accordion"> 
     @foreach (var convo in Model.TicketConversation.OrderByDescending(x => x.LastUpdatedTimestamp)) 
     { 
      <div class="col-md-10 col-md-offset-1" style="padding-bottom: 5px;"> 
       <div class="panel panel-default"> 
        <div class="panel-heading removePaddingBottom" data-toggle="collapse" data-target="#[email protected]" style="background-color: inherit;" id="[email protected]" onclick="javascript:showHideLastConvoMsg(@convo.id)"> 
         <a style="text-decoration: none !important; color: inherit; width: 100px;"> 
          <span style="font-size: 16px; font-weight: bold; vertical-align: middle !important;"><i class="fa fa-chevron-right" id="[email protected]"></i>&nbsp;&nbsp;@convo.Subject</span> 
         </a> 
         @{ var lastmessage = convo.ConversationComments.First(); } 
         <div class="row"> 
          <div id="[email protected]" style="margin-top: 15px;"> 
           <div class="@lastmessage.DisplayCssClass"> 
            <div class="row"> 
             <div class="col-md-offset-1 col-md-10 removePadding" style="margin-bottom: 5px; margin-top: 10px;"> 
              <strong>@lastmessage.TypeOfContact</strong> 
             </div> 
             <div class="col-md-offset-1 col-md-10 removePadding" style="margin-bottom: 10px;"> 
              @lastmessage.Message 
             </div> 
            </div> 
            <div class="row"> 
             <div class="col-md-offset-6 col-md-5 text-right text-muted" style="margin-bottom: 10px;"> 
              <small> 
               <em>Posted by @lastmessage.CommenterName @@ @lastmessage.MessageTimestamp</em> 
              </small> 
             </div> 
            </div> 
           </div> 
          </div> 
         </div> 
        </div> 
        <div id="[email protected]" class="panel-collapse collapse"> 
         <div class="panel-body" style="padding: 0;"> 
          @if (convo.IsReadOnly == false @*&& Model.IsClosed == false*@) 
          { 
           <div class="row"> 
            @*<div class="col-md-12" style="padding-bottom: 3px; padding-top: 3px;"> 
             <a href="@Url.Action("ReplyQuery", new { cid = convo.id })" class="pull-right btn btn-sm btn-default"><i class="fa fa-reply"></i>&nbsp;Reply</a> 
            </div>*@ 

            ---- here i'm calling partial view for comment box--- 
          } 
          @foreach (var item in convo.ConversationComments) 
          { 
           <div> 
            <div class="message-border @item.DisplayCssClass"> 
             <div class="row"> 
              <div class="col-md-offset-1 col-md-10 removePadding" style="margin-bottom: 5px;"> 
               <strong>@item.TypeOfContact</strong> 
              </div> 
              <div class="col-md-offset-1 col-md-10 removePadding" style="margin-bottom: 10px;"> 
               @item.Message 
              </div> 
             </div> 
             <div class="row"> 
              <div class="col-md-5 text-right text-muted"> 
               <small> 
                <em>Posted by @item.CommenterName @@ @item.MessageTimestamp</em> 
               </small> 
              </div> 
             </div> 
            </div> 
           </div> 
          } 
         </div> 
        </div> 
       </div> 
      </div> 
     } 
    </div> 
</div> 

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

ответ

1

Вы можете создать метод действий, который возвращает частичное представление для разговора у вас есть. Для экс:

public class SomeCtrlController : Controller 
{ 
    public PartialViewResult Conversation(int id) 
    { 
     List<Conversation> conversations = new List<Conversation>(); 
     //Use id to create your Model and pass it to Partial View 
     conversations = PopulateConversations(id); 

     // The below code search for Conversation.cshtml inside Views\SomeCtrl folder 
     return PartialView(conversations); 
    } 
} 

Тогда из вашего cshtml (вид бритвы), вы можете назвать это как в первый раз загрузка:

@{ Html.RenderAction("Conversation", "SomeCtrl", new { id = 1 /*this will be id for which conversion have to load */ });} 

Затем, чтобы обновить только беседы вы можете использовать JQuery Ajax или получить метод. Это обновит только раздел, который вы указали. См. Пример ниже

<script> 
    var conversationData = { 
     "id": 1 /*this will be id for which conversion have to load */ 
    }; 
    $.get("/SomeCtrl/Conversation", conversationData, 
      function (returnedHtml) { 
       $("#placeHolderDivToHaveConversation").html(returnedHtml); 
      }); 
</script> 
0

, когда мне нужно это сделать, я работаю с jquery ajax. Например:

нужно загрузить этот Div ниже динамически:

Кнопка Просмотр

<button id="buscarVideos" class="btn">Buscar</button> 

Звоню Аякса в одном событии и загрузка де результата нет:

успеха ajax

$("#partial_video").html(data); 

Частичное

<div class="col-lg-12"> 
      <div id="partial_video"> 
       @*@Html.Partial("_Player")*@ 
      </div> 
    </div> 

Вернуться на контроллере:

return PartialView("_Player", video); 
Смежные вопросы