Comment puis-je ouvrir un fichier lorsque vous cliquez sur un ActionLink?
Comment puis-je ouvrir un fichier existant sur le serveur lorsqu'un utilisateur clique sur un actionlink? Le code suivant fonctionne pour le téléchargement d'un fichier, mais je veux ouvrir une nouvelle fenêtre de navigateur ou de l'onglet et afficher le contenu du fichier.
public ActionResult Download()
{
return File(@"~\Files\output.txt", "application/text", "blahblahblah.txt");
}
Vous devez vous connecter pour publier un commentaire.
Vous devez ajouter "inline" pour un nouvel onglet.
La façon dont vous utilisez le
File()
la méthode est de spécifier un nom de fichier dans le troisième argument, ce qui entraîne unecontent-disposition
en-tête d'être envoyé au client. Cet en-tête est ce que raconte un navigateur web que la réponse est un fichier à enregistrer (et suggère un nom pour le sauver). Un navigateur peut remplacer ce comportement, mais ce n'est pas contrôlable à partir du serveur.Une chose que vous pouvez faire est d'essayer de ne pas spécifier un nom de fichier:
La réponse est toujours un fichier, et en fin de compte c'est toujours le navigateur de quoi faire avec elle. (Encore une fois, pas contrôlable à partir du serveur.) Techniquement il n'y a pas une telle chose comme un "fichier" en HTTP, c'est juste en-têtes et le contenu de la réponse. En omettant une suggestion de nom de fichier, le cadre dans ce cas peut omettre le
content-disposition
en-tête, qui est le résultat recherché. Il vaut la peine de tester le résultat dans votre navigateur pour voir si la tête est effectivement omis.Utiliser une cible de vide sur votre lien pour l'ouvrir dans une nouvelle fenêtre ou onglet:
Cependant, forcer le navigateur à afficher le contenu est hors de votre contrôle, comme il dépend entièrement de la façon dont l'utilisateur a configuré son navigateur pour traiter les fichiers qui sont
application/text
.Si vous travaillez avec du texte, vous pouvez créer une vue et de remplir le texte sur ce point de vue, qui est ensuite renvoyé à l'utilisateur comme une page HTML ordinaire.
veuillez essayer ceci et remplacer votre contrôleur nom et le nom de l'action dans le html lien d'action
OU
c'est l'action de lien qui montrent à nouveau onglet vierge
Je ne peux pas voter votre réponse est utile, suivez dow. Merci beaucoup !