Also mein Problem ist jetzt, dass ich mein Modell nicht in meinen Controller bekommen kann, wenn ich dieses Formular einreiche. Ich versuche, die Elemente aus den BillingCodes (eine Liste von BillingCodeObjects) durchlaufen zu lassen und anzuzeigen. Ich habe etwas Code von diesen entfernt, der für die Situation nicht wirklich relevant ist, um es kürzer und einfacher zu lesen.
Hier ist der Code für meine Ansicht ...
%Vor%Und hier ist ein Code für meinen Controller:
%Vor%Und schließlich, hier ist die Info, die im Modell ist:
%Vor%Hier ist ein Bild der Debug-Locals, wenn das Formular zurückgegeben wird ..
Sie machen eine foreach für die Ansichten, also sollten die Eingabeelemente die Werte irgendwo wie folgt haben:
name="BillingCodes[0].EnterTimeHours"
, name="BillingCodes[0].EnterTimeMinutes"
Sie können die Anfrage in den Chrome Developer Tools (STRG + UMSCHALT + C) auf der Registerkarte "Netzwerk" überprüfen
oder einfach nur die Quelle anzeigen. Wenn dies der Fall ist, übermitteln Sie mehrere BillingCodeObj-Objekte. Sie müssen einen Controller haben, der das empfängt.
Sehen Sie sich den Quellcode an, da er Ihnen dabei helfen kann zu verstehen, was hinter den Kulissen passiert.
Versuchen Sie dies auf Ihrem Controller:
%Vor%Sie können auch (zu Debuggingzwecken)
machen %Vor%und überprüfen Sie das Formular, wie in Debug debuggt wird.
nach Kommentaren und mehr Code zur Verfügung gestellt ändere deine Ansicht zu:
%Vor%Erstellen Sie einen neuen cshtml in EditorTemplates / BillingCodeObj.cshtml:
%Vor% Ihre Ansicht ist ein Typ von BillingCodeList
, aber Sie versuchen, List<BillingCodeObj>
an Ihre Aktion im Controller zu senden.
Versuchen Sie, die Aktion wie folgt zu ändern:
%Vor%Tags und Links asp.net-mvc c# razor forms asp.net-mvc-4