2012-06-07 2 views
0

J'ai un contrôleur avec une méthode pour télécharger le fichier. Sans code, tout ce dont j'ai besoin est d'aller à ce lien:Télécharger le fichier de mon projet

http://localhost:1186/Content/MyFolder/file1.exe 

et le fichier est téléchargé.

J'ai essayé de le faire avec le code comme ceci:

Response.Redirect(Server.MapPath("~\\Content\\MyFolder\\file1.exe")); 

Mais le point de rupture passe par cette ligne et rien ne se passe. Je pense que le problème est que j'utilise Server.MapPath, mais comment ferais-je cela?

+0

Server.Ma pPath renvoie le chemin physique de la ressource, essayez Response.Redirect ("~ \\ Content \\ MyFolder \\ file1.exe"); – MSUH

+0

Cette question liée SO sur le téléchargement de fichiers avec MVC peut être utile, http://stackoverflow.com/questions/5826649/returning-a-file-to-view-download-in-mvc – Despertar

Répondre

0

vous pouvez faire quelque chose comme ça

créer une action

public ActionResult RedirectToDownload() 
{ 
    return View(); 
} 

puis sur la vue avec JavaScript sur la charge rediriger vers votre URL

$(document).ready(function() { 
    window.navigate("~/Content/MyFolder/file1.exe"); 
}); 

vous pouvez également utiliser cette

public ActionResult Index() 
{ 
    return Redirect("~/Content/MyFolder/file1.exe"); 
} 
+0

Je ne vois pas le point de avoir le contrôleur envoyer l'utilisateur à une vue qui redirige l'utilisateur à nouveau. C'est le travail principal du contrôleur pour effectuer les redirections. – Despertar

+0

vous avez toujours besoin d'une vue sauf si vous téléchargez le fichier directement depuis l'action –

+0

@Despertar http://blogs.msdn.com/b/rickandy/archive/2012/03/01/response-redirect-and-asp-net -mvc-do-not-mix.aspx –