2 Stimmen

Muss Datei hochladen und sie im Pre-Init-Ereignis verwenden

Wie es heißt, muss ich eine Datei hochladen und sie dann im pre_init-Ereignis einer zweiten Seite verwenden. Der Server-Lebenszyklus verhindert dies (da pre_init vor den Ereignisbehandlern erfolgt), das ist in Ordnung, also ist der einzige Weg, den ich sehe, um Seite1 zu verwenden, um die Datei hochzuladen, dann eine response.redirect zur Seite2 zu machen, wo ich die Datei im pre_init verwenden kann. Aber das scheint a) verworren und b) erfordert, dass ich den hochgeladenen Dateinamen an die zweite Seite weitergebe.

Gibt es einen anderen Weg um dies zu umgehen, oder muss ich es einfach akzeptieren?

(Ich brauche das pre_init-Ereignis, um Schritte zu einem WizardControl hinzuzufügen und die Datei zu deserialisieren, um die Objekte zu bekommen, die hinzugefügt werden sollen).

Danke

2voto

Mike Comstock Punkte 6460

Sie sollten in der Lage sein, Request.Files direkt von pre_init aus zu verwenden:

protected void Page_PreInit(object sender, EventArgs e)
{
    HttpPostedFile file = Request.Files["IDOfFileUploadControl"];
}

0voto

Musa Hafalır Punkte 1742

Cross-Page-Posting scheint eine Lösung zu sein. Sie können das FileUpload-Steuerelement von der vorherigen Seite wie folgt erhalten:

if (Page.PreviousPage != null)
{
    FileUpload prev = 
        (FileUpload)Page.PreviousPage.FindControl("FileUpload1");
    if (prev != null)
    {
        // Operationen.
    }
}

Ich habe noch nicht ausprobiert, ob es im Pre_Init-Ereignis funktioniert, aber es ist einen Versuch wert.

Weitere Informationen zum Cross-Page-Posting:

http://msdn.microsoft.com/en-us/library/ms178139.aspx

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X