Wie bekomme ich Dateien und Formularwerte von einer ASP.NET MVC 4-Website?

8

Ich habe eine ASP.NET MVC-Website mit einer Dropdown-Liste, die in der Ansicht ...

erstellt wird %Vor%

Programme werden aus einer Business Object-Sammlung gefüllt und in der Indexaktion auf dem Home Controller ... in den ViewBag eingefügt.

%Vor%

Die Ansicht hat auch potenziell drei Dateien, die ich in der gleichen Ansicht bekomme ...

%Vor%

Alle oben genannten Steuerelemente sind in einem Formular enthalten, das in der Ansicht mit ...

erstellt wird %Vor%

Meine Probleme sind, dass ich keine Möglichkeit finde, alle Dateien zu verarbeiten UND auf die Formularfelder zu verweisen.

Insbesondere muss ich wissen, welches Programm der Benutzer aus dem Dropdown ausgewählt hat.

Ich kann die Dateien mit diesem Code problemlos verarbeiten ...

%Vor%

Aber ich kann mir auch nicht vorstellen, wie man auf die POST-Formularwerte zugreifen kann, besonders auf den Drop-down-Wert für Programme (und für den Datensatz gibt es auch ein Kontrollkästchen, von dem ich den Wert nicht lesen kann.) Fiddler zeigt mir, dass die Antwort die hat Dateiverweise UND das ausgewählte Programm, aber ich kann nicht herausfinden, wie sie aus dem POST mit ASP.NET MVC erhalten.

Ich weiß, dass diese Frage ziemlich einfach ist, aber ich lerne immer noch das ganze Web / http-Ding, nicht nur MVC.

BEARBEITEN Danke für deine Antworten. Ich hatte den Gedanken, dass die Antwort darin liegen könnte, sowohl die Dateien als auch die Formularwerte in den POST zu übergeben.

Meine letzte Frage ist also ... Wie ändere ich den HTML.BeginForm-Block, um sowohl die Dateien als auch die Formularwerte zu übergeben? Gerade jetzt habe ich ...

%Vor%

Was sollte diese using-Anweisung sein, um sowohl Formularwerte als auch Dateien als separate Parameter von ActionResult zu erhalten?

EDIT MY EDIT
Es scheint, dass ich keine Änderungen vornehmen muss ... der Debugger zeigt, dass sowohl Dateien als auch Formular nicht null sind. Cool! Ist das richtig?

    
Seth Spearman 24.10.2012, 21:00
quelle

2 Antworten

7

Ich denke, das sollte es tun

%Vor%

Sie sollten in der Aktion [HttpPost] 2 Parameter übergeben können. Sie können den HTML-Namen auch übergeben.

Bearbeiten: Ich hatte auch Probleme mit Formularen in ASP.net. Ich schlage vor, in diesem Blogbeitrag von Scott Allen zu suchen. Ссылка

    
Ammar 24.10.2012, 21:05
quelle
1

Verwenden Sie einen ViewModel-Typ, der sowohl die gebuchten Dateien als auch die Formularwerte enthält, oder verwenden Sie das Objekt HttpRequest (Zugriff über das Controller.Request -Eigenschaft) mit .Form[key] für POST-Werte und .Files[key] für veröffentlichte Dateien.

    
Dai 24.10.2012 21:05
quelle