Я работаю над MVC 4. Я создал файл Excel динамически, используя следующий простой код. Мой хостинг находится на Azure.
Я создал корневой путь, а затем попытаюсь сохранить этот файл Excel.
Проблема в том, что когда возвращается ответ метода ActionResult
он открывает всплывающее окно по умолчанию, чтобы открыть файл, но имя файла имеет GUID, а не мое предоставленное имя файла.
Код генерации файла Excel:
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
// ...
//Save
LocalResource resource = RoleEnvironment.GetLocalResource("MyValue");
string tempPath = resource.RootPath + "DemoFile.xls";
return tempPath;
tempPath возвращает путь, например C:\AppData\Local\dftmp\Resources\11a2435c-998c-4fe8-aa55-8bb42455b4ca\directory\DemoFile.xls
.
Всплывающее окно "Загрузка файла" не дает имени файла как DemoFile
оно gives some GUID
почему так?
Код метода ActionResult
:
public ActionResult DownloadExcel() {
string path = ExcelGenerationCode(fileName);
Stream s = new FileStream(path, FileMode.Open, FileAccess.Read);
return new FileStreamResult(s, "application/vnd.ms-excel");
}
Также пытался указать свойство name
public ActionResult DownloadExcel() {
string path = ExcelGenerationCode(fileName);
Stream s = new FileStream(path, FileMode.Open, FileAccess.Read);
return new FileStreamResult(s, "application/vnd.ms-excel")
{
FileDownloadName = "myexcelFILE1.xls"
};
}
попадание ниже ошибки при предоставлении параметра имени файла.
у меня много места и памяти.
Вы должны вернуть новый FileContentResult, и ваше действие должно вернуть FileResult вместо ActionResult, например:
public virtual FileResult DownloadFile(long fileId)
{
string path = ExcelGenerationCode(fileName);
return File(path, "application/vnd.ms-excel","donwload.xls");
}
ActionResult
question above
пожалуйста, проверьтеFileResult
наследуетActionResult
, поэтому последняя также будет работать.