Asp.net Rasierer Textfeld Array für Listenelemente

8

Ich kann nicht herausfinden oder herausfinden, wie man eine Liste von Gegenständen (Cupcakes) nimmt und sie in Rasiermesser mit einem Mengenfeld anzeigt.

Was passiert, ist, dass ich die Werte für jede Cupcake-Menge in der Liste nicht abrufen kann. Können Sie in Razor Textbox-Arrays erstellen?

ANSICHT

%Vor%

MODELL

%Vor%

STEUERUNG

%Vor%

CUPCAKE (ENTITY)

%Vor%     
devfunkd 10.06.2014, 21:04
quelle

2 Antworten

22

Sie müssen einen Index verwenden, anstatt foreach , damit es funktioniert.

%Vor%

Dadurch werden sequentiell benannte + Zahleneinträge erstellt, die im Post-Back-Modus wieder in das Modell zurückgeführt werden.

Mir ist klar, dass dies wie "Warum funktioniert das nicht funktionieren?" erscheint, aber mit foreach gibt es nicht genug reflektierte Informationen für TextBoxFor (da es nur ein einzelnes Objekt ist), während der Array-Index durch extrahiert wird Reflexion vom Ausdruck Model.CupcakeQuantities[i] .

Die empfangende Controller-Methode sollte dasselbe wie das an die Ansicht übergebene Modell übernehmen:

z.B.

%Vor%     
Gone Coding 10.06.2014, 21:09
quelle
2

Versuchen Sie es so:

anzeigen:

%Vor%

Modell:

%Vor%

Controller:

%Vor%     
Oleksii Aza 10.06.2014 21:21
quelle

Tags und Links