如何在ASP.NET MVC应用程序中实现返回特定页面的404错误响应?
- 内容介绍
- 文章标签
- 相关推荐
本文共计392个文字,预计阅读时间需要2分钟。
我有一个Controller,它从数据库中提取图像,重新调整大小,将结果缓存到磁盘上,然后将图像作为Content()结果输出。最近,我在我的网站上添加了对Scrape-buster代码的支持。也就是说,我将每个Scrape-buster代码...
我有一个Controller,它从数据库中提取图像,重新调整大小,将结果缓存在磁盘上,然后将图像作为Content()结果吐出.最近我在我的网站上添加了对“Scrape-buster”代码的支持.也就是说,我将每个图像附加的唯一代码的哈希加上一些盐,并将该哈希的前几个字符传递给用户,以便在检索期间进行确认.这使我可以防止人们从网站上刮掉每一张图片. (没有登录,也刮掉HTML,就是这样.)
无论如何,如果ScrapeBuster代码不正确,我想从我的控制器返回404错误.有没有内置的方法来做到这一点,或者我正在寻找构建自定义ActionResult?
最简单的(可能不是最干净的)方法是抛出HttpException:
public static void Throw404() { throw new HttpException(404, "The resource cannot be found"); }
您应该确保调用堆栈中没有人捕获异常.这样,输出将看起来像普通的ASP.NET黄色死亡屏幕404.
更简洁的方法是返回自定义结果:
public sealed class HttpNotFoundResult : ActionResult { public override void ExecuteResult(ControllerContext context) { if (context == null) throw new ArgumentNullException("context"); context.HttpContext.Response.StatusCode = 404; } }
本文共计392个文字,预计阅读时间需要2分钟。
我有一个Controller,它从数据库中提取图像,重新调整大小,将结果缓存到磁盘上,然后将图像作为Content()结果输出。最近,我在我的网站上添加了对Scrape-buster代码的支持。也就是说,我将每个Scrape-buster代码...
我有一个Controller,它从数据库中提取图像,重新调整大小,将结果缓存在磁盘上,然后将图像作为Content()结果吐出.最近我在我的网站上添加了对“Scrape-buster”代码的支持.也就是说,我将每个图像附加的唯一代码的哈希加上一些盐,并将该哈希的前几个字符传递给用户,以便在检索期间进行确认.这使我可以防止人们从网站上刮掉每一张图片. (没有登录,也刮掉HTML,就是这样.)
无论如何,如果ScrapeBuster代码不正确,我想从我的控制器返回404错误.有没有内置的方法来做到这一点,或者我正在寻找构建自定义ActionResult?
最简单的(可能不是最干净的)方法是抛出HttpException:
public static void Throw404() { throw new HttpException(404, "The resource cannot be found"); }
您应该确保调用堆栈中没有人捕获异常.这样,输出将看起来像普通的ASP.NET黄色死亡屏幕404.
更简洁的方法是返回自定义结果:
public sealed class HttpNotFoundResult : ActionResult { public override void ExecuteResult(ControllerContext context) { if (context == null) throw new ArgumentNullException("context"); context.HttpContext.Response.StatusCode = 404; } }

