0

Я довольно новичок в MVC и Razor (да, стыдно за меня), У меня есть страница с 2 частичными видами и 1 форма ajax с одним из частичный вид с динамически созданным списком, обновляющим значения (и сбоя) к другому частичному представлению, по дизайну он отображает первое сообщение списка.ajax форма с частичным представлением с динамически созданным списком, обновляющим значения на другом частичном представлении

Проблема заключается в том, что я нажимаю кнопку на одном из элементов списка («Ver» в «_ListaMensajes»), вместо того, чтобы показывать детали сообщения в нижней части страницы (_detalleMensaje), он делает ничего (нет звонков на контроллере или что-то еще)

Я следил за несколькими учебниками и рабочими проектами, чтобы это сделать, и это меня смутило, я не знаю больше, если этот код имеет смысл, пожалуйста, небольшую помощь.

Благодаря

PD: Я использую MVC 5.1 (по NuGet консоли) и реферирования: jquery.unobtrusive-ajax.min.js

Контроллер:

public ActionResult DetalleMensaje(int Id_Mensaje) { 
     V_Sedd_Mensaje oV_Sedd_Mensaje = oI_V_Sedd_Mensaje.Recuperar_V_Sedd_Mensaje_PorCodigo(Id_Mensaje); 
     return PartialView("_DetalleMensaje", oV_Sedd_Mensaje); 
    } 

страница:

<div class="col-md-10"> 
    <fieldset class="dhhBorder"> 
     <legend class="dhhBorder">Lista de Envíos</legend> 
     <div class="form-group"> 
      <div class="row"> 
       <div class="col-lg-1">Evento</div> 
       <div class="col-lg-2">@Html.DisplayFor(x => x.Descripcion)</div> 

       <div class="col-lg-1">Fecha Envio</div> 
       <div class="col-lg-1">@Html.DisplayFor(x => x.Fecha_Envio_Short)</div> 

       <div class="col-lg-1"> 
        <button type="button" title="Editar" data-url="/Envios/[email protected](x => x.Id_Envio_Empresa)" class="btn btn-default btn-xs modalMTC"><span class="glyphicon glyphicon-paperclip"></span></button> 
       </div> 
      </div> 
      <div class="row"> 
      @using (Ajax.BeginForm("DetalleMensaje", "Envios", new { @id = "FormCabecera" }, 
         new AjaxOptions() 
         { 
          HttpMethod = "GET", 
          InsertionMode = InsertionMode.Replace, 
          UpdateTargetId = "SeccionMensaje" 
         })) 
       { 
        <div class="col-md-10"> 
         <fieldset class="dhhBorder"> 
          <legend class="dhhBorder">Lista de Envíos</legend> 
          <div class="row"> 
           <div class="col-md-12" id="SeccionListado"> 
            @Html.Partial("_ListaMensajes", @Model.lV_Sedd_Mensaje) 
           </div> 
          </div> 
         </fieldset> 
        </div> 
       } 

       <div class="col-md-10" id="SeccionMensaje"> 
        @Html.Partial("_DetalleMensaje", Model.oV_Sedd_Mensaje) 
       </div> 
      </div> 
     </div> 
    </fieldset> 
</div> 

_ListaMensajes:

@using aseDGRAIC.Helpers 
@model List<beDGRAIC.V_Sedd_Mensaje> 


<div class="table-responsive"> 
    <table class="table table-striped table-bordered table-hover table-responsive"> 
     <thead class="small"> 
      <tr class="text-center"> 
       <th class="text-center col-lg-1" scope="col">Orden</th> 
       <th class="text-center col-lg-2" scope="col">Tipo</th> 
       <th class="text-center col-lg-4" scope="col">Asunto</th> 
       <th class="text-center col-lg-1" scope="col">Adjunto</th> 
       <th class="text-center col-lg-2" scope="col">Fecha/Hora</th> 
       <th class="text-center col-lg-2" scope="col">Acciones</th> 
      </tr> 
     </thead> 
     <tbody> 
      @if (Model != null) 
      { 
       var cuenta = 1; 
       foreach (var x in Model) 
       { 
        <tr> 
         <td class="text-center">@cuenta</td> 
         <td>@x.Tipo</td> 
         <td>@x.Asunto</td> 
         @if (x.Existen_Adjuntos != 0) { 
          <td><button type="button" title="Editar" data-url="/Envios/[email protected]_Mensaje" class="btn btn-default btn-xs"><span class="glyphicon glyphicon-paperclip"></span></button></td> 
         } else { 
          <td>&nbsp;</td> 
         } 
         <td>@x.Fecha</td> 
         <td class="text-center"> 
          <button type="submit" title="Ver" data-url="/Envios/[email protected]_Mensaje" class="btn btn-default btn-xs"><span class="glyphicon glyphicon-comment"></span></button> 
         </td> 
        </tr> 
       } 
      } 
     </tbody> 
    </table> 
</div> 

и _detalleMensaje:

@model beDGRAIC.V_Sedd_Mensaje 

<div class="panel"> 
    <div class="row"> 
     <div class="col-md-12"> 
      <div class="row form-horizontal"> 
       <div class="col-sm-6 col-md-6"> 
        <div class="form-group"> 
         <label class="col-md-3 control-label small">Asunto:</label> 
         <div class="col-md-9"> 
          @if (Model.Id_Mensaje != 0) 
          { 
           @Html.TextBoxFor(x => x.Asunto, new { @class = "form-control input-sm", @disabled = "disabled" }) 
          } 
          else 
          { 
           @Html.TextBoxFor(x => x.Asunto, new { @class = "form-control input-sm" }) 
          } 
         </div> 
        </div> 
       </div> 
      </div> 
      <div class="row form-horizontal"> 
       <div class="col-sm-6 col-md-6"> 
        <div class="form-group"> 
         <label class="col-md-3 control-label small">Mensaje:</label><br /> 
         <div class="col-md-9">        
          @if (Model.Id_Mensaje != 0) 
          { 
           @Html.TextBoxFor(x => x.Mensaje, new { @class = "form-control input-sm", @disabled = "disabled" }) 
          } 
          else 
          { 
           @Html.TextBoxFor(x => x.Mensaje, new { @class = "form-control input-sm" }) 
          } 
         </div> 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 
<div class="panel-footer"> 
    <div class="btn-group"> 
     @if (Model.Id_Mensaje == 0) { 
      <button id="btnGrabar" type="button" class="btn btn-success btn-sm">Enviar</button> 
     } 
    </div> 
</div> 

EDIT: Сделаны некоторые изменения в коде на основе комментарии ниже, но ведет себя так же

+0

Есть ли способ, которым ошибка в моем макете мешает jquery? В: '$ (window) .on ('load', function() { $ ('. Selectpicker'). Selectpicker(); <--- здесь if (globalLog == '0') { $ ('.toggleButtonMenu'). click(); } }); 'I got:" Uncaught TypeError: undefined не является функцией " – culebrin

+0

Пробовал с другой компоновкой без ошибок и ведет себя одинаково ... – culebrin

+0

У вас есть форма ajax, но не кнопка отправки. Ваша часть внутри формы ('_ListaMensajes') не отображает никаких элементов управления, поэтому в любом случае ничего не будет представлено. И вы, цикл, генерируете недопустимый html (дубликаты атрибутов id). Тогда ваш второй частичный '_detalleMensaje', который имеет некоторые элементы управления, находится вне формы, поэтому неясно, что вы на самом деле пытаетесь сделать здесь. –

ответ

0

Представляется, что Ajax.ActionLink является правый элемент управления для отправки информации из Ajax.Form. Так что мои «_ListaMensajes» частичное изменение представить кнопку на это:

@Ajax.ActionLink("Ver", "DetalleMensaje", new { Id_Mensaje = x.Id_Mensaje }, new AjaxOptions { UpdateTargetId = "SeccionMensaje" }) 

Это было трудно для меня, чтобы найти все ссылки на это, именно поэтому моя задержка.

Благодаря Стивену, указав его.

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

  • Нет связанных вопросов^_^