如何在ASP.NET Core 3.1中添加通用路由映射?
ASP.NET Core 3.1 MVC 添加自定义路由的简便实现
在ASP.NET Core 3.1 MVC中,你可以直接在Startup.cs的Configure方法里,通过MapControllerRoute添加自定义路由,和你熟悉的旧版MVC的Route.Add逻辑一致,不需要额外的路由文件。
具体实现代码
在原有的默认路由配置前,添加一条新的路由映射即可:
app.UseEndpoints(endpoints => { // 自定义路由:匹配 {controller}/{action} 格式的请求 endpoints.MapControllerRoute( name: "custom", pattern: "{controller}/{action}"); // 原有的默认路由 endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); });
关键说明
- 路由匹配顺序:路由是按注册顺序依次匹配的,所以更具体的路由要放在前面。这里
{controller}/{action}比默认路由少了可选的id参数,属于更具体的规则,放在默认路由前可以避免被带默认参数的路由优先匹配。 - 其实你的默认路由本身已经覆盖了
{controller}/{action}的场景(因为id?是可选参数),如果只是需要这类请求正常路由,默认路由就足够。但如果需要给这类请求单独命名、添加路由约束,或者有其他特殊逻辑,就需要单独配置这条自定义路由。
内容的提问来源于stack exchange,提问作者Booji Boy
相关产品推荐
相关产品推荐

