Bootstrap-modal: laden von Daten für das mitgelieferte ID
Habe ich eine Bootstrap modal, dass gestartet werden kann von verschiedenen hyperlinks, jeder liefert eine andere ID.
Aber was ich will ist, dass jedes mal, wenn der modal gestartet wird, es wird aufgefüllt, mit den Daten für die ID, die übergeben wird, um den modal. Hier der (vereinfachte) code (siehe Kommentare im code zur Erklärung):
@model ViewModels.BookcaseItem.EditBookcaseItemViewModel
<div class="modal hide modal-large" id="editBookDialog">
@using (Html.BeginForm("Edit", "Bookcase", FormMethod.Post, new { @class = "form-horizontal" }))
{
<!-- this is where the ID will be passed to -->
@Html.HiddenFor(x => x.Id)
<div class="modal-body">
<!-- there's actually a couple of editors and labels here, but that doesn't really matter -->
@Html.EditorFor(x => x.Bla)
</div>
<div class="modal-footer">
<a href="#" class="btn" data-dismiss="modal">Close</a>
<input type="submit" value="Save" class="btn btn-primary" />
</div>
}
</div>
Hier ist einer der hyperlinks, die verwendet wird, um starten Sie die modale und übergeben die ID zu:
<a href="#editBookDialog" data-toggle="modal" data-id="@bookcaseItem.Id" title="Edit this item" class="open-EditBookDialog"></a>
Und nicht zuletzt der JQuery-Teil pass eigentlich die ID:
$(document).on("click", ".open-EditBookDialog", function () {
var myBookcaseItemId = $(this).data('id');
$(".modal #Id").val(myBookcaseItemId);
$('#editBookDialog').modal('show');
});
Und nehmen an, es gibt eine Methode mit der Signatur ActionResult Edit(string-id), die Daten zurück an die PartialView, wo der modal platziert wird.
Den modal ist bereits in die Seite eingebettet, mit alle hyperlinks, es ist nur standardmäßig nicht sichtbar.
Ich kann einfach nicht herausfinden, wie füllen Sie es mit verschiedenen Daten basierend auf der ID, die übergeben wurde.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konnte man AJAX verwenden, um zu laden frische Daten vom server, indem Sie durch die controller-action:
Nun, offensichtlich sollten Sie ändern Sie die Anker soll, öffnen Sie das Dialogfenster so, dass es " href Punkte zum Bearbeiten von controller-action: