我需要根据以下条件生成适当的404错误:
我正在尝试在.NET Core Web API上迁移Web api,并且需要在.net框架中的DefaultHttpControllerSelector和ApiControllerActionSelector的.net核心中找到类似物。因为我有模块,可以检查控制器和动作的存在。如果找不到控制器或动作,则生成自定义错误。 我该如何处理?
答案 0 :(得分:1)
对于不存在的控制器或动作,默认情况下它将返回 404 。
如果您要自定义错误消息,可以尝试Middleware
检查Response.StatusCode
,然后根据自己的逻辑自定义响应。
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IServiceProvider serviceProvider)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.Use(async (context, next) => {
//handle request
await next.Invoke();
//handle response
if (context.Response.StatusCode == StatusCodes.Status404NotFound)
{
//hanlde based on your logic
await context.Response.WriteAsync("Something wrong");
}
});
// Rest app.Use