Bur*_*jua 1 .net http-status-code-404 asp.net-web-api owin katana
假设我有hotfound.html页面,我想在找不到页面(或wab api方法)时显示它.
如何在OWIN应用程序中处理它?
谢谢
您可以使OwinMiddleware重定向NotFound响应(或任何其他响应).
class NotFoundMiddleware : OwinMiddleware
{
public NotFoundMiddleware(OwinMiddleware next, IAppBuilder app)
: base(next)
{
}
public override async Task Invoke(IOwinContext context)
{
await Next.Invoke(context);
if (context.Response.StatusCode == 404)
{
context.Response.Redirect("notfound.html");
}
}
}
Run Code Online (Sandbox Code Playgroud)
或者直接在响应主体中返回html(即没有重定向).
public override async Task Invoke(IOwinContext context)
{
await Next.Invoke(context);
if (context.Response.StatusCode == 404)
{
using (StreamWriter writer = new StreamWriter(context.Response.Body))
{
string notFound = File.ReadAllText(@"Web\notfound.html");
writer.Write(notFound);
writer.Flush();
}
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,您可能需要根据具体情况另外编辑响应,但这适用于我的简单Owin服务器.
在Startup.cs中,添加
app.Use<NotFoundMiddleware>(app);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1423 次 |
| 最近记录: |