Autor Beitrag
manteltrager
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 02.03.12 17:32 
Hi,
folgendes Szenario:
Ich möchte in meiner View (Edit View) eine Tabelle mit Daten aus einem ViewModel ausgeben und editierbar machen (funktioniert super). 2. Schritt ich möchte dem Benutzer die Möglichkeit geben die Zeilen der Tabelle zu verschieben (lässt sich super mit Javascript realisieren). Diese gesamte neue Reihenfolge und die geänderten Daten möchte ich nun an den Controller zurück schicken.

Das Umstrukturieren der Zeilen habe ich über folgende Javascript Funktion realisiert:
ausblenden Quelltext
1:
2:
3:
$(document).ready(function () {
        $("#sortable").sortable({});
    });


Für das Abspeichern habe ich folgende 2. Javascript Funktion geschrieben:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
$(function () {
        $("#submit-list").click(function () {
            debugger;
            $.ajax({
                url: '/Test/EditBrokerage/',
                data:
                { arr: $("#sortable").sortable('toArray'),
                    brokerageToSave: "H I E R   M E I N   M O D E L"
                },
                type: 'post',
                traditional: true
            });
            document.forms[0].submit();
        });
    });


Die mit folgendem Button aufgerufen wird:

<input type="button" name="saveButton" value="Speichern" id="submit-list"/>

Meine Controller Edit Action hat im wesentlichen 2 Parameter:

ausblenden Quelltext
1:
2:
[HttpPost]
… EditBrokerage(BrokerageEditViewModel brokerageToSave, List<string> arr)


Die Funktion $("#sortable").sortable('toArray') liefert mir die Reihenfolge der Zeilen in meinen Parameter arr. Bei Klicken auf den Button kommen die neue Reihenfolge auch in meiner Controller Action an. Es fehlen allerdings die Daten aus meinem Formular

ausblenden Quelltext
1:
(@using (Html.BeginForm("EditBrokerage", "Test", FormMethod.Post, new { name = "myID"})))					

:-(

Frage: Wie übergebe ich das geänderte Model bzw. ViewModel an das Javascript, so dass diese Daten auch in meiner Controller Action ankommen?

Bzw. andere Frage: Wie übergebe ich das obige arr (Reihenfolge der Zeilen) an den Submit Button:
ausblenden Quelltext
1:
<input type="submit" name="saveButton" value="Save"/>					


Dieser sendet mir völlig korrekt meine geänderten Daten im ViewModel an meine Controller Action. Es fehlen mir aber nun die Reihenfolge der Zeilen.submit-list