J'ai une petite application Web asp.net MVC 1 qui peut stocker des fichiers et créer des répertoires dans le répertoire App_Data. Quand l'opération d'écriture réussit, j'ajoute un message à la tempdata et fais un redirectToRoute. Le problème est que la tempdata est nulle lorsque l'action est exécutée. Si j'écris les fichiers dans un répertoire en dehors du répertoire racine des applications Web, la tempdata n'est pas nulle et tout fonctionne correctement. Des idées pourquoi écrire dans l'app_data semble effacer la tempdata?L'écriture de fichiers dans App_Data entraîne la nullité des données temporaires
éditer: si DRS.Logic.Repository.Manager.CreateFile (chemin, hpf, commentaire) écrit dans l'App_Data, TempData sera nul dans l'action en cours de redirection. si c'est un répertoire hors de la racine de l'application web, c'est bien. Aucune exception n'est levée.
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(int id, string path, FormCollection form)
{
ViewData["path"] = path;
ViewData["id"] = id;
HttpPostedFileBase hpf;
string comment = form["FileComment"];
hpf = Request.Files["File"] as HttpPostedFileBase;
if (hpf.ContentLength != 0)
{
DRS.Logic.Repository.Manager.CreateFile(path, hpf, comment);
TempData["notification"] = "file was created";
return RedirectToRoute(new { controller = "File", action ="ViewDetails", id = id, path = path + Path.GetFileName(hpf.FileName) });
}
else
{
TempData["notification"] = "No file were selected.";
return View();
}
}
Veuillez publier le code, utilisez-vous toujours RedirectToRoute lorsque vous écrivez dans un répertoire différent? – Lazarus
oui j'utilise toujours redirecttoroute. le code qui écrit le fichier réel est simple et ne jette aucune exception. Nous avons essayé redirectToAction avec les mêmes résultats. – RAMX