我有一个场景,需要从代码后端提供文件。
具体是哪个文件,取决于请求。在某些情况下,可能没有可供提供的文件,我希望向浏览器返回404。
如何从代码后端实现这一点?这样做来告诉用户没有可用的文件,是否是正确的做法?
您可以使用Response.StatusCode属性来返回404:
Page.Response.StatusCode = 404
关于是否这样做是“正确的事情”,我认为取决于页面将如何访问。 如果您将以编程方式访问它,则应选择404。但是,如果它将成为面向用户的系统,则应选择某种自定义页面。程序喜欢代码,人类喜欢更易理解的东西:-)
throw new HttpException(404, "File not found");
我更倾向于将它们重定向到一个自定义错误页面,清晰地表明文件未找到,与您的 Web 应用程序的风格相同。
您可以在 web.config 中指定如何处理某些错误。
<customErrors mode="On">
<error statusCode="404" redirect="FileNotFound.aspx"/>
</customErrors>