You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将.NET 3.1中的路由配置转换为.NET 5的等效写法?

等效实现代码

你只需要在UseEndpoints配置块中调用MapControllerRoute方法即可,写法和旧版路由配置几乎一致:

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
        name: "Default",
        pattern: "{*stuff}",
        defaults: new { controller = "Default", action = "DefaultAction" }
    );
});

配套控制器方法示例

对应的DefaultController中需要声明同名的stuff参数来接收捕获的路径值:

public class DefaultController : Controller
{
    public IActionResult DefaultAction(string stuff)
    {
        // 访问localhost:5001/aRandomStuff时,stuff的值就是"aRandomStuff"
        // 你的业务逻辑
        return Ok();
    }
}

注意事项

  • 该全匹配路由规则需要放在所有路由配置的最后,避免优先级过高拦截其他正常的路由请求
  • 如果要支持捕获空路径(也就是直接访问localhost:5001时也触发该路由),可以给stuff参数添加默认值,比如把pattern改为"{*stuff?}"

内容的提问来源于stack exchange,提问作者CodeMuppet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 23:57:04