Dans mon application ASP.NET MVC, je génère des rapports Excel, j'ai un fichier modèle que je copie et modifie. Ce fichier modèle est placé dans un dossier de ma solution. Je veux l'utiliser comme suit:accéder à un fichier sur le serveur dans ASP.NET MVC
string templatePath = @"\Templates\report.xlsx";
using (var template = File.OpenRead(templatePath)) {
// Copy template and process content
}
Mais ce code génère une exception
Couldnot find a part of the path 'C:\Templates\report.xlsx'.
Comment dois-je faire référence à ce dossier?
J'ai aussi essayé d'utiliser
string templatePath = @"~\Templates\report.xlsx";
Mais cela aboutit à
Could not find a part of the path 'C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\~\Templates\report.xlsx'.
Il fonctionne cependant lorsque j'utilise le chemin absolu, mais qui n'a pas de sens à mon serveur de production.
Si vous utilisez le tilde dans le chemin, il est important d'appeler 'Server.MapPath' sur la chaîne pour le résoudre. – Jess