Как вернуть статус код 404 VirtualFileResult?

        [HttpGet]
        public VirtualFileResult GetVirtualFile(string fileName)
        {
            fileName = fileName.Replace(" ", "") + ".pdf";
            var filepath = Path.Combine("~/Files", fileName);
            if (System.IO.File.Exists(filepath))
            {
                return ;
            }
            return File(filepath, "application/pdf", fileName);
        }

Если файл не существует, то добавить логику, которая будет возвращать страницу со статус-кодом 404


Ответы (1 шт):

Автор решения: Avanlock
        [HttpGet]
        public IActionResult GetVirtualFile(string fileName)
        {
            fileName = fileName.Replace(" ", "") + ".pdf";
            var filePath = Path.Combine("~/Files", fileName);
            try
            {
                return PhysicalFile(filePath, "application/pdf", fileName);
            }

            catch (FileNotFoundException)
            {
                return NotFound();
            }
            catch (Exception e)
            {
                return StatusCode(StatusCodes.Status500InternalServerError);
            }
        }
→ Ссылка