ASP.NET MVC FilePathResult: как вернуть HTML-файл не найден? - PullRequest
5 голосов
/ 01 февраля 2011

Следующий код, мы надеемся, является правильным способом вернуть изображение, существующее на диске, с помощью ASP.NET MVC 3:

public FilePathResult GetThumbnail(string imageName)
{
    if( !String.IsNullOrEmpty(imageName) &&
        Regex.IsMatch(imageName, @"^p\d{10}.jpg$"))) ) // p0000000000.jpg
    {
        var homePath = Server.MapPath("~/Content/previews");
        var imagePath = Path.Combine( homePath, imageName );

        if( System.IO.File.Exists(imagePath) )
            return this.File(imagePath, "image/jpeg");
    }

    return ???   
}

Если вы не найдете файл, что вы могли бы вернуть, что означало бы ошибку HTML 404 (или эквивалент?)

1 Ответ

6 голосов
/ 01 февраля 2011

Вы бы throw new HttpException(404, "Not found");.Очевидно, что у вас есть соответствующая страница в разделе customErrors вашего web.config для указания пользователю 404.

...