Problem beim Herunterladen von Dateien mit einem API-Controller

8
%Vor%

Ich habe den obigen Code in asp.net mvc-Anwendung, um eine Datei herunterzuladen. Es funktionierte gut, da mein Controller zum Controller vererbt wurde. Aber wenn ich diesen Code auf den Webapi-Controller verschiebe, wird bei der Rückgabe Datei ein Fehler ausgegeben. Nach der Analyse habe ich festgestellt, dass mein Controller in Webapi ApiController (system.web.http.api controller) erbt. Ich habe festgestellt, dass es in ApiController keine Dateiklasse gibt. Gibt es eine Option zum Herunterladen der Dateifunktionalität im Webapi-Controller?

Ich habe den folgenden alternativen Code im Webapi-Controller ausprobiert, konnte aber keine herunterladbare Datei sehen, sobald ich diese anrufe.

%Vor%

PS: Ich versuche angularjs-Code zu verwenden, um diese API durch eckigen Service aufzurufen. Dies wird beim Download-Buttonklick aufgerufen. Jeder Winkelcode oder jede Hilfe in einem API-Controller-Code oder Vorschlägen wäre hilfreich.

    
Kurkula 07.08.2015, 22:51
quelle

3 Antworten

10

Hier ist ein viel einfacheres Beispiel:

%Vor%     
Jonathan 10.08.2015, 02:21
quelle
3

Es glaubt, dass so etwas funktioniert!

%Vor%     
Márcio Duarte 14.08.2015 22:18
quelle
2

In Anbetracht der Tatsache, dass Sie XML zurückgeben, könnte der Controller eine XDokument .

%Vor%

Sie müssen dann entweder GlobalConfiguration.Configuration.Formatters ändern um XML zurückzugeben, oder konfigurieren Sie Ihren Client so, dass der Header akzeptiert wird application/xml

Eine Möglichkeit, den Server so zu konfigurieren, dass er XML über einen anderen Typ wie JSON zurückgibt, ist der folgende Code:

%Vor%

Sie können die Datei dann als XML über einen Hyperlink herunterladen

%Vor%

Zum Anpassen sehen Sie sich diese Fragen zum Herunterladen einer Datei mit Angular js an.

mikek3332002 09.08.2015 23:44
quelle