示例:我创建了一个如下所示的文件:
controller.cs
in Program.cs文件是:
using Microsoft.AspNetCore.Mvc;
using ControllersExample.Models;
namespace ControllersExample.Controllers
{
[Controller]
public class HomeController : Controller
{
[Route("/")]
[Route("home")]
public ContentResult home()
{
return Content("<h1>Welcome</h1> <h2>Hello from Index</h2>", "text/html");
}
[Route("about")]
public string about()
{
return "Hello from about";
}
[Route("contact")]
public string contact()
{
return "Hello from contact";
}
}
}
我想为所有其他请求定义一个defaultRoute上面尚未定义的所有其他请求。例如:我想访问请求
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers(); //add all controller classes as services
var app = builder.Build();
//app.MapGet("/", () => "Hello World!");
app.UseStaticFiles();
app.UseRouting();
app.MapControllers();
app.Run();
,/abc
,
/edf
,...等,但是我尚未定义这些路线。 我试图添加
/ghi
在app.Use(async (context, next) =>
{
await context.Response.WriteAsync("Page not found");
await next();
});
我如何为所有其他请求定义一次? thank你们所有人都提前
有多种实现您需求的方法,我建议您可以考虑使用MapFallback方法。这将添加了一个专业的Microsoft.aspnetcore.Routing.RouteEndpoint到Microsoft.aspnetcore.Routing.IndpoIntRouteBuilder,它将匹配具有最低优先级的非文件名的请求。 更多详细信息,您可以参考以下代码:
program.cs
恢复: