netcore 3.1 自定义404逻辑
2021-02-09 11:15
标签:sea 配置 etc 直接 输出 ram swa ring frame 404页面,以前在netframework里,需要在iis上配置,或者在web.config里配置,在netcore mvc里,则可以用中间件来实现,非常简单!(别被“中间件”这个名词吓坏了)!!! 直接上代码, 1、首先创建一个404页面,比如: 上面的是Action,再创建对应的View页面,View页面我就不贴代码了。 2、写中间件,StartUp类的Configure方法里, 只要一句话: 具体的代码如下: 最简单的404返回还可以直接返回一句话: netcore 3.1 自定义404逻辑 标签:sea 配置 etc 直接 输出 ram swa ring frame 原文地址:https://www.cnblogs.com/puzi0315/p/13062159.html [Route("error/404")]
public IActionResult Error404()
{
return View();
}
//404
app.Use(async (context, next) =>
{
await next.Invoke();
if (context.Response.StatusCode == 404)
{
//也可以定义为其他地址(沐雪微商城)
context.Response.Redirect("/error/404");
}
});
//404 end
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IHostApplicationLifetime applicationLeftTime)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
string OpenSwagger = Configuration.GetSection("AppSettingConfig:OpenSwagger").Value;//是否开启swagger
if (OpenSwagger == "1")
{
app.UseSwagger().UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "MuXue.WeTao.Mall.Web API V1"); });
}
app.UseStaticFiles();
app.UseRouting();
app.UseCors(MyAllowSpecificOrigins);
app.UseAuthentication(); //一定要在这个位置(app.UseAuthorization()上面)
app.UseAuthorization();
//404
app.Use(async (context, next) =>
{
//其他业务
await next.Invoke();
if (context.Response.StatusCode == 404)
{
//也可以为其他地址,甚至还可以只输出一句话
context.Response.Redirect("/error/404");
}
});
//404 end
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
// endpoints.MapControllerRoute(
// name: "areas",
// pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
//);
});
} if (context.Response.StatusCode == 404)
{
await context.Response.WriteAsync("404");
}
上一篇:NeuroAttack: Undermining Spiking Neural Networks Security through Externally Triggered Bit-Flips
下一篇:本博客CSS
文章标题:netcore 3.1 自定义404逻辑
文章链接:http://soscw.com/index.php/essay/53065.html