Intento enviar un valor de texto de entrada html a un controlador. No puedo usar una publicación de formulario porque mi diálogo modal ya está en un formulario.
Aquí está el código:
@foreach (var annonce in Model.AnnoncesRecherchees) { <!-- Modal --> <div class="modal fade" id="@("AjouterVisiteVirtuelleModal" + @annonce.Reference)" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="staticBackdropLabel">Ajouter visite virtuelle annonce @annonce.Reference</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <div class="form-floating"> <input id="visitevirtuelle" class="form-control" autocomplete="" aria-required="false" /> <label class="form-label"></label> <span asp-validation-for="Ville" class="text-danger"></span> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button> @*<button type="button" class="btn btn-primary">Understood</button>*@ <a class="btn btn-primary" asp-controller="Acheteur" asp-action="AjouterVisiteVirtuelle" asp-route-annonceId="@annonce.ID" asp-route-visiteVirtuelle="document.getElementById("visitevirtuelle").value">Ajouter une visite virtuelle</a> </div> </div> </div> </div>Quiero que el parámetro "asp-route-visiteVirtuelle" tenga el valor del texto de entrada "visite Virtuelle".
pero no funciona
Por favor, ayúdame.
El asistente de etiquetas en el enlace de anclaje representa la URL en href cuando se carga la página, por lo que no puede usar js para agregar el valor a asp-route-visiteVirtuelle .
Aquí hay una demostración de trabajo completa:
@foreach (var annonce in Model.AnnoncesRecherchees) { <button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#@("AjouterVisiteVirtuelleModal" + @annonce.Reference)"> Launch demo modal </button> <!-- Modal --> <div class="modal fade" id="@("AjouterVisiteVirtuelleModal" + @annonce.Reference)" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="staticBackdropLabel">Ajouter visite virtuelle annonce @annonce.Reference</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <div class="form-floating"> //add event here...................... <input onchange="ChangeUrl(this)" id="visitevirtuelle" class="form-control" autocomplete="" aria-required="false" /> <label class="form-label"></label> <span asp-validation-for="Ville" class="text-danger"></span> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button> <a class="btn btn-primary" asp-controller="Acheteur" asp-action="AjouterVisiteVirtuelle" asp-route-annonceId="@annonce.ID" >Ajouter une visite virtuelle</a> </div> </div> </div> </div> } @section Scripts { <script> function ChangeUrl(event) { var visiteVirtuelleVal = $(event).val(); var anchor = $(event).closest('.modal-body').siblings('.modal-footer').find('a').attr('href'); $(event).closest('.modal-body').siblings('.modal-footer').find('a').attr('href',anchor+"&visiteVirtuelle="+visiteVirtuelleVal); } </script> }