Nancy'de 404 sayfam nasıl görüntülenir?
if (ErrorCode == 404)
{
return View["404.html"];
}
gibi Nancy benim 404 hata sayfasını görüntülemek için gereken
?
Nancy'de 404 sayfam nasıl görüntülenir?
if (ErrorCode == 404)
{
return View["404.html"];
}
gibi Nancy benim 404 hata sayfasını görüntülemek için gereken
?
yanıt doğru, ama sadece yerine GenericFileResponse ait ViewRenderer kullanarak bir örnek eklemek istedim: Örneğin GenericFileResponse
için kullanabilirsiniz.
public class MyStatusHandler : IStatusCodeHandler
{
private IViewRenderer viewRenderer;
public MyStatusHandler(IViewRenderer viewRenderer)
{
this.viewRenderer = viewRenderer;
}
public bool HandlesStatusCode(HttpStatusCode statusCode,
NancyContext context)
{
return statusCode == HttpStatusCode.NotFound;
}
public void Handle(HttpStatusCode statusCode, NancyContext context)
{
var response = viewRenderer.RenderView(context, "/status/404");
response.StatusCode = statusCode;
context.Response = response;
}
}
Bu, motorların ve düzenlerin görüntülenmesini sağlayacağından çok daha iyi bir yoldur. +1 – sed
"Handle" a tek liner yapmak için 'WithStatusCode 'uzantısını kullanarak bunu biraz daha geliştirebilirsiniz: context.Response = viewRenderer.RenderView (context," /status/404").WithStatusCode(statusCode); ' – Crisfole
Sadece IStatusCodeHandler
arabiriminin bir uygulamasını sağlamanız gerekir (bu, otomatik olarak Nancy tarafından alınacaktır). HttpStatusCode.NotFound
için de geçerlidir HandlesStatusCode
yöntem Karşılığında
.
Ve Handle
yönteminde
NancyContext
üzerinde
Response
özelliğini ayarlamanız gerekir. nemesv gelen
public class My404Hander : IStatusCodeHandler
{
public bool HandlesStatusCode(HttpStatusCode statusCode,
NancyContext context)
{
return statusCode == HttpStatusCode.NotFound;
}
public void Handle(HttpStatusCode statusCode, NancyContext context)
{
var response = new GenericFileResponse("404.html", "text/html");
response.StatusCode = statusCode;
context.Response = response;
}
}
Nancy.ErrorHandling ad alanını eklediğinizden emin olun. –