【发布时间】:2018-01-21 17:21:41
【问题描述】:
我需要修改 Web API 抛出 404 错误时的消息:
现在,如果任何 api 不存在,让我们说访问 https://mywebsite/api/foo/?%22%26gt;%26lt;script%26gt;_q_q=)(%26lt;/script%26gt;
我收到以下回复:
{ "Message": "没有找到与请求 URI 匹配的 HTTP 资源 'https://mywebsite/api/foo/?\">'.", "MessageDetail": "在控制器 'MyController' 上没有发现任何动作 匹配请求。” }
我想修改这条消息。
为了做到这一点,我尝试了这个..
我在控制器上添加了一个自定义属性:
[NoActionFoundFilterAttribute]
public class MyController
过滤器的代码是:
public class NoActionFoundFilterAttribute: ExceptionFilterAttribute
{
public override void OnException(HttpActionExecutedContext context)
{
// My code
}
}
在 Web API Config 中我已经添加了过滤器:
config.Filters.Add(new NoActionFoundFilterAttribute());
即使在完成上述所有步骤之后,OnException 调用无效操作时,未命中方法“NoActionFoundFilterAttribute”文件。
您能否分享我缺少的内容以修改自定义 404 错误消息
【问题讨论】:
-
我不确定其他人是否出于同样的原因来到这里。但是我发现这个问题是因为“未找到”页面可以使用跨站点脚本。开箱即用,我预计这是不可能的!
标签: c# asp.net asp.net-web-api2