MVC 4 Bootstrap-Modal Bearbeiten \ Detail
In der Hoffnung, jemand könnte in der Lage sein, mir zu helfen, mit etwas, was ich bin mit dem Experimentieren in MVC 4 mit bootstrap.
Habe ich eine stark typisierte index-Ansicht, die zeigt Elemente in einer Tabelle zusammen mit edit-und delete-action-icons in jeder Zeile.
@model IEnumerable<Models.EquipmentClass>
....
@foreach (var item in Model)
{
<tbody>
<tr>
<td>
@item.ClassId
</td>
<td>
@item.ClassName
</td>
<td>
<a href=@Url.Action("Edit", "EquipmentClass", new { id = item.ClassId })>
<i class="icon-edit"></i>
</a>
<a href=@Url.Action("Delete", "EquipmentClass", new { id = item.ClassId })>
<i class="icon-trash"></i>
</a>
</td>
</tr>
</tbody>
} <!-- foreach -->
Den EquipmentClass controller gibt die Bearbeiten-Ansicht-für das ausgewählte Element anhand der id. Alles Super und wie erwartet an dieser Stelle
public ViewResult Edit(int id)
{
return View(equipmentclassRepository.Find(id));
}
Was ich gerne wissen würde ist, wie zu öffnen das edit-Formular in ein bootstrap modal-dialog.
Könnte ich versuchen, und ersetzen Sie die Aktion Bearbeiten in der Tabelle mit den folgenden und dann ein modal-div am unteren Rand der Ansicht, aber wie gebe ich die ID des ausgewählten Elements und die html-helper sollte ich im modalen Bereich?
<!-- replaced table action -->
<a class="btn pull-right" data-toggle="modal" href="#myModal" >Details</a>
....
<!-- modal div -->
<div class="modal hide fade in" id="myModal" )>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h3>Modal header</h3>
</div>
<div class="modal-body">
@Html.Partial("Edit")
</div>
<div class="modal-footer">
<a href="#" class="btn" data-dismiss="modal">Close</a>
<a href="#" class="btn btn-primary">Save changes</a>
</div>
</div>
Ich würde schätzen jede Beratung, vielen Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, dass ich eine Lösung für Ihr problem. Um Ihre MVC-Anwendung arbeiten, wie Sie es haben möchten, sollten Sie einige änderungen an dem code, den Sie zur Verfügung gestellt:
1. Hinzufügen eines div repräsentiert ein modales für die Bearbeitung eines Elements auf der Unterseite Ihrer layout-Seite:
Beachten Sie, dass dieser modal ist streng verbunden mit der controller-Aktion, verantwortlich für die Bearbeitung eine EquipmentClass Element.
2. Hinzufügen eines jQuery - Funktion, um Ihre benutzerdefinierten javaScript:
Wie Sie sehen können diese Funktion nimmt id als einen seiner Parameter. Im Allgemeinen sein Zweck ist, ersetzen Sie den leeren modal Körper mit dem, was wir in einem separaten Teilansicht und als display-ganze container als modales Seite.
3. Setzen Sie Ihren modal-div in einem separaten Teilansicht, und nennen es Bearbeiten (hat das gleiche wie Ihr-controller Aktion). Müssen Sie ändern Ihre Bearbeiten teilweise Namen sth else, zum Beispiel EditBody.
Den Bearbeiten Teilansicht sollte jetzt Aussehen sth wie diese:
4. Ändern Sie die controller-Aktion, so dass es gibt die Teilansicht in der vorherigen Schritt erstellt:
5. Ändern Sie die Bearbeiten 'a' zu verankern, so dass es Anrufe erstellt jQuery Funktion:
Diese Weise jedes mal, wenn ein 'a' - Anker mit Bearbeiten-Symbol geklickt wird das showModal-Funktion (mit zugehöriger id übergeben wird) ausgelöst wird und ein bootstrap modal mit den zugehörigen Daten angezeigt.
Ich bin sicher, es gibt einen besseren Weg, es zu tun, aber dieser Weg war für mich sehr gut 🙂
Hoffe, das hilft Euch ein bisschen 🙂
Przemo Antwort für mich gearbeitet, allerdings tun beachten Sie, dass ich nur geschafft, es zu arbeiten, wenn ich habe die erste code-block aus
zu
Beachten Sie, dass ich entfernt die "fade" - Klasse aus editModalContainerID. Ansonsten ist die eingeschränkte Sicht nicht laden. Hoffe, dies hilft jemand anderes mit dem gleichen Problem.
hide
Klasse aus Ihrer Antwort, nichtfade
.