У меня есть небольшое веб-приложение asp.net MVC 1, которое может хранить файлы и создавать каталоги в каталоге App_Data. Когда операция записи завершается успешно, я добавляю сообщение в tempdata и делаю redirectToRoute. Проблема в том, что tempdata имеет значение null, когда действие выполняется. Если я пишу файлы в каталоге за пределами корневого каталога веб-приложений, tempdata не является нулевым, и все работает правильно. Любые идеи, почему запись в app_data, кажется, очищает tempdata?Запись файлов в App_Data вызывает ошибку tempdata
Редактировать: если DRS.Logic.Repository.Manager.CreateFile (путь, hpf, комментарий) записывается в App_Data, TempData будет null в перенаправленном действии. если это каталог из корня веб-приложения, это нормально. Никакие исключения не бросаются.
[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();
}
}
Пожалуйста, разместите код, вы все еще используете RedirectToRoute, когда пишете в другой каталог? – Lazarus
Да, я все еще использую redirecttoroute. код, который записывает фактический файл, является простым и не вызывает каких-либо исключений. Мы попробовали redirectToAction с теми же результатами. – RAMX