2010-12-15 2 views

Répondre

3

Même si vous pouviez recevoir le fichier en javascript, que feriez-vous avec? Enregistrez-le sur l'ordinateur client? Tu ne peux pas. Cela n'a pas vraiment de sens de demander des actions du contrôleur qui renvoient des fichiers en utilisant AJAX. Créez simplement un lien standard et laissez l'utilisateur décider quoi faire avec le fichier téléchargé.

Tout ce que vous avez besoin est de définir les en-têtes HTTP propres:

public ActionResult Download() 
{ 
    return File(@"c:\foo.pdf", "application/pdf", "foo.pdf"); 
} 

Et puis Générez votre lien de téléchargement:

<%= Html.ActionLink("download file", "download") %> 
+0

Cela est logique. Quand ils cliquent sur le fichier téléchargé, je ne veux pas déclencher une publication en pleine page. Est-ce possible en ouvrant une autre fenêtre? – Kenoyer130

+0

Pour clarifier, le fichier est créé en fonction des données publiées. Ce n'est pas un fichier statique. – Kenoyer130

+0

@Kenoyer, si vous définissez les en-têtes de réponse correctement, il ne naviguera pas vers cette page. – hunter

Questions connexes