Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[gelöst] ASP MVC4 jQuery Dialog mit mehreren Submit Buttons
ZeroQool
myCSharp.de - Member



Dabei seit:
Beiträge: 322

Themenstarter:

[gelöst] ASP MVC4 jQuery Dialog mit mehreren Submit Buttons

beantworten | zitieren | melden

Hallo zusammen,

bei normalen Formularen ermittel ich mir mit folgenden Code welcher Submit Button gedrückt worden ist.


[HttpPost]
public ActionResult CreateProductInventory(InventorySubmitViewModel submitModel, string onSave, string onDelete)

Das funktioniert soweit ganz gut. Jetzt habe ich ein Modal Dialog mit jQuery realisiert, aber bei den Parameter onSave, onDelete bekomme ich immer NULL. Nur das Submit-Model hat gültige Werte.

Kann es sein, dass es mit dem Dialog nicht mehr funktioniert. Leider finde ich im Netz auch keine Lösung.

Danke

MFG
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von ZeroQool am .
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.826

beantworten | zitieren | melden

Nö, kann nicht sein.
private Nachricht | Beiträge des Benutzers
ZeroQool
myCSharp.de - Member



Dabei seit:
Beiträge: 322

Themenstarter:

beantworten | zitieren | melden

OK, habe den Fehler gefunden....

Data Parameter im JS muss natürlich auch die Buttons übergeben.

Sorry
private Nachricht | Beiträge des Benutzers
ZeroQool
myCSharp.de - Member



Dabei seit:
Beiträge: 322

Themenstarter:

beantworten | zitieren | melden

zu früh gefreut.....


        [HttpPost]
        public ActionResult CreateProductInventory(InventorySubmitViewModel submitModel, String btnAddInventoryItem, String btnRemoveInventoryItem, String btnSaveInventories)

 $('form', dialog).submit(function () {
                $.ajax({
                    url: this.action,
                    type: this.method,
                    data: { submitModel: $(this).serialize(), btnAddInventoryItem: $('#btnAddInventoryItem'), btnRemoveInventoryItem: $('#btnRemoveInventoryItem'), btnSaveInventories: $('#btnSaveInventories') },
                    //data: $(this).serialize(),
                    success: function (result) {
                        alert(result);
                        if (result.success) {
                            $('#' + dialogId).dialog('close');                           
                        } else {
                            $('#' + dialogId).html(result);
                            bindForm();
                        }
                    },
                    error: function () {

                    }
                });
                return false;
            });

Hintergrund:
In meiner Dialog-Box habe ich eine Tabelle in der ich Items hinzufügen, löschen kann. Deshalb die verschiedenen Buttons für Add, Remove und einen um die ganze Tabelle zu speichern und den Dialog zu schließen.

Sobald ich einen Button klicke macht der CodeBehind genau das was er tun soll, aber anstatt den Dialog stehen zu lassen (bspw. wenn ich Zeile hinzufüge) wird mir der Inhalt nicht mehr im Dialog angezeigt sondern auf der komplette Seite (Layout usw. sind weg). Ich konnte den Fehler soweit schon einschränken, dass es an meiner JS "data" Zeile liegt.

Fehlerfrei:
data: $(this).serialize()

Fehler:
data: { submitModel: $(this).serialize(), btnAddInventoryItem: $('#btnAddInventoryItem'), btnRemoveInventoryItem: $('#btnRemoveInventoryItem'), btnSaveInventories: $('#btnSaveInventories') } 

Wäre für jede Unterstützung dankbar.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.826

beantworten | zitieren | melden

Dir ist schon klar, dass Du mit $('#btnAddInventoryItem') nur eine Referenz holst, also im Prinzip ein Objekt und keinen Wert bekommst....?

Öffne Dein Firebug und schau nach, was wirklich an den Server gesendet wird.
Sauber sieht Dein Vorgehen nicht aus - insbesondere das serialize() wird wahrscheinlich was ganz anderes liefern als Du Dir vorstellst.
private Nachricht | Beiträge des Benutzers
ZeroQool
myCSharp.de - Member



Dabei seit:
Beiträge: 322

Themenstarter:

beantworten | zitieren | melden

Die Serialisierung hat in der Tat etwas anderes gebracht als ich dachte. Auf jeden Fall ist das Problem dank des Ansatzes gelöst. Danke
private Nachricht | Beiträge des Benutzers