- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我为 NancyFX 做了我的自定义 404 处理程序,它工作正常,但有一个问题。问题是它甚至覆盖了那些我想发送 404 代码但使用我的自定义消息的请求,例如“找不到用户”。
public class NotFoundHandler : IStatusCodeHandler
{
public bool HandlesStatusCode(HttpStatusCode statusCode, NancyContext context)
{
if (statusCode == HttpStatusCode.NotFound)
{
// How to check here if the url actually exists?
// I don't want every 404 request to be the same
// I want to send custom 404 with Response.AsJson(object, HttpStatusCode.NotFound)
return true;
}
return false;
}
public void Handle(HttpStatusCode statusCode, NancyContext context)
{
context.Response = new TextResponse(JsonConvert.SerializeObject(new { Message = "Resource not found" }, Formatting.Indented))
{
StatusCode = statusCode,
ContentType = "application/json"
};
}
}
Get["/"] = _ =>
{
// This will not show "User not found", instead it will be overriden and it will show "Resource not found"
return Response.AsJson(new { Message = "User not found" }, HttpStatusCode.NotFound);
};
最佳答案
您决定要在您的IStatusCodeHandler
实现中处理哪些响应。现在,您只是在检查状态代码本身,而不向其添加上下文。你可以做的(例如)将只覆盖 context.Response
如果它不包含满足特定标准的 Response,例如 JsonResponse
类型
if(!(context.Response Is JsonResponse))
{
context.Response = new TextResponse(JsonConvert.SerializeObject(new { Message = "Resource not found" }, Formatting.Indented))
{
StatusCode = statusCode,
ContentType = "application/json"
};
}
由于您可以访问完整的 NancyContext
,您还可以访问整个 Request
和 Response
(由路由返回或请求管道中的其他内容)。此外,如果您需要更多控制,您可以将任意元数据粘贴到 NancyContext.Items
中。
希望对你有帮助
关于c# - NancyFX - 自定义 404 处理程序覆盖每个 404 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18429715/
我在控制台项目中创建了一个简单的自托管 Nancy 站点,其中包含一个模块。在测试它时,我注意到每个请求都会调用模块构造函数。这让我很困惑,因为 ctor 也是路由注册的地方。这对我来说没有意义,我一
我喜欢 NancyFX 错误自定义页面。不幸的是,除了错误之外,急需的客户不愿看到绿色怪物。有什么方法可以从几乎完美的 nancyfx 错误消息页面中删除图像吗? 最佳答案 您实现了 IStatusC
我想了解为什么我的示例项目中的 nancyFx 无法处理并行查询。我正在运行 Windows 8、VS2015、C#、fiddler 4。 这是我的示例服务: class Program {
我想弄清楚 NancyFx 请求容器是如何工作的,所以我创建了一个小测试项目。 我创建了一个这个界面 public interface INancyContextWrapper { Nancy
我正在尝试了解 NancyFX 中的 DynamicDictionary,它看起来很酷。有谁知道一篇博客文章或类似的文章,它贯穿了它的内部结构? 我需要一个 propertybag 来传递我不知道其内
当 NancyFx 应用 Bind<>()在带有 DateTime 的对象上属性,它创建了一个 Local日期时间,而不是 Utc日期时间。 这是从客户端 javascript 接收到的正文(我单独反
这可能是非常基本的问题。但我想知道不同的 nancyfx 托管选项。基本上我读了一篇关于在 heroku 上托管 Nancyfx 网络应用程序的文章,他们提到这种类型的托管需要自托管。通常我使用 Na
我想从父目录提供我的静态文件,这样我就可以在应用程序仍在运行时修改它们以便于开发。我试图像这样在我的 Bootstrapper 中添加静态内容约定: this.Conventions.StaticCo
我的特定上下文是一个自托管的 Nancy 应用程序,我在其中使用 RavenDb 嵌入式文档数据库。 我的 Bootstrap 看起来像这样: public class MyBootstrapper
我正在尝试使用 Nancy 让我的自托管服务在出现未捕获的异常时返回 json 格式的错误。然而,我总是得到回应: {"readyState":4,"status":404,"statusText":
我正在使用 Nancy 编写一个简单的 Web 应用程序。至少有一个请求会导致未知长度的流,因此我无法提供 Content-Length .我想用 Transfer-Encoding: chunked
我试图通过 Nancy.Testing.Browser 对象传递路由参数(不是查询参数!)。 我了解(现在)如何向/从我的 NancyModule 发送和使用查询字符串: var customerRe
我真的很习惯 ASP.NET MVC 方法:用相应的属性注释模型,MVC 会验证它并更新 ModelState.Errors,ModelState 在 View 上可用,因此可以向用户显示错误。 我还
根据我在源代码中看到的内容,RequiresAuthentication() 对整个模块进行身份验证检查。有什么方法可以按路线执行此操作吗? 最佳答案 我遇到了同样的问题。然而事实证明,Require
编译 View 时出错 Error compiling template: views/devices.cshtml Errors: [CS0234] Line: 3 Column: 27 -
使用 nancyfx 是否可以使用发布数据重定向到另一种方法? 在我的示例中,在用户注册后我想自动执行登录(我知道还有其他方法可以实现此目的,我可以从 Post["/login"] 中提取代码并从两种
我们使用 NancyFx 来托管单页应用程序和多个 ReST 端点。代码和测试使用相同的 Bootstrap ,唯一的区别是在测试中我们使用测试框架中的 Nancy Browser。 如果我从网站返回
我在我的应用程序中运行一个自托管的 NancyFX 网络服务器。现在我托管了一个模块: public class MetricsModule : NancyModule { private I
我最近部署到 http://domainshop.apphb.com/使用以下 NuGet 包的简单 ASP.NET 应用程序: Nancy.Hosting.Aspnet Dapper MySql.D
我有一个应用程序,它有一个基于 NancyFx 的休息服务,我发现它是一个非常酷的框架。但是我在阻止它方面遇到了很大的问题。我的主机类如下所示: public class RestHost : ISt
我是一名优秀的程序员,十分优秀!