Il modulo modale esegue correttamente una richiesta Ajax. I dati ricevuti vengono visualizzati in background. Il richiamo del modale viene eseguito dagli attributi data- * come esempi di bootstrap mostrano here. Ma il modal non viene licenziato. Ho provato ad aggiungereChiusura modulo modale Bootstrap dopo una richiesta Ajax completata
OnSuccess = "$('#searchForm').modal('hide');"
al mio Ajax.BeginForm. Ma questo non rimuove l'effetto di dissolvenza che il cast modale sullo sfondo.
La mia opinione è:
<div class="modal fade" id="searchForm" tabindex="-1" role="dialog" aria-labelledby="searchFormLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="searchFormLabel">Search Here</h4>
</div>
<div class="modal-body">
@using (Ajax.BeginForm(new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "results",
OnSuccess = "$('#searchForm').modal('hide');"
}))
{
// input fields and submit button are here
}
</div>
</div>
</div>
</div>
Mi sto perdendo qualcosa?
Dopo '$ ('# searchForm'). Modal ('nascondi');' aggiungi questo '$ ('. Modal-backdrop'). Hide();'. Vedi se funziona. –
@Alorika Funziona, ma la prossima volta che proverai ad aprire il modal verrà immediatamente respinto. –
Ciò potrebbe verificarsi a causa di bolle di eventi. Quindi puoi provare ad aggiungere 'e.stopPropagation()' dopo '$ ('# searchForm'). Modal ('nascondi');'. Guarda se questa soluzione funziona per te. –