Umgang mit 2 Tasten einreichen Aktionen in einer einzigen Ansicht / Form - ASP.NET MVC 2 RTM

StackOverflow https://stackoverflow.com/questions/2444245

Frage

Ich habe eine Ansicht, in der der Benutzer in der Lage, eine Datei auf den Server hochgeladen werden.

In dieser Ansicht Ich habe auch 2 Tasten. Man eine Datei zum Hochladen und die letzte Datei importiert Download

In meinem Controller erstellt haben I 2 Aktionsmethoden. Import und Export

Wie kann ich verwalten jede Schaltfläche klicken, um die richtige Aktion Methode Umleitung in meinem Controller angeschlossen werden?

Ich habe Html.ActionLink versucht:

<%= Html.ActionLink("Upload", "Import", "OracleFile")%>
<%= Html.ActionLink("Download", "Export", "OracleFile")%>

Html.ActionLink hat nicht den Trick. Die Aktion Links wurden mir die richtige Aktion Methoden nehmen, aber sie einen GET-Request wurden zu erzeugen. Auf diese Weise Request.Files.Count = 0 ist.

Ich brauche eine Anforderung POST.

Hinweis: der interessanteste Teil ist, dass der Upload arbeitet und plötzlich es aufgehört zu arbeiten. Ich habe gesehen, dass einige Leute das gleiche Problem mit Fileupload-Aufgaben haben, in denen die Request.Files immer leer sind. Ich denke, es ist leer, weil Sie einen Beitrag zum Server benötigen. Ist es nicht?

War es hilfreich?

Lösung

Vielleicht geben u die Idee:

:

<form enctype="multipart/form-data" method="post" action="/Media/Upload/Photo">
    <input type="file" name="file" id="file" /> 
    <input type="submit"  name= "submitImport" value="Upload" />
    <input type="submit" name = "submitExport"  value="Download" />
</form>

Controller:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Action (FormCollection formCollection)
        {
            if (formCollection["submitImport"] != null)
            {
                return Import(formCollection);
            }
             if (formCollection["submitExport"] != null)
            {
                return Export(formCollection);
            }
        }

Exportieren und Importieren sind die appropriateactions

Andere Tipps

Sie haben eine "multipart / form-data" Formular zu verwenden, und das Formular abzuschicken. Keine Action.

<form enctype="multipart/form-data" method="post" action="/Media/Upload/Photo">
    <input type="file" name="file" id="file" /> 
    <input type="submit" value="Upload" />
</form>

eine POST-Anforderung für den Upload zu erstellen, das Dateieingabe Formularelement verwenden und nur Post zurück an den Server ala normal.

http://www.w3schools.com/jsref/dom_obj_fileupload.asp

Haben Sie einen Blick auf diesen Blog-Post von Scott Hanselman. http://www.hanselman.com/blog/ABackToBasicsCaseStudyImplementingHTTPFileUploadWithASPNETMVCIncludingTestsAndMocks.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top