首页 > 解决方案 > 属性路由区分通配符和具有相似模式的操作

问题描述

我有一个动作的属性,例如:

[HttpGet("{id}")]

和另一个动作的属性

[HttpGet("getuser")]

他们最终都调用了 {id} 动作。

如何在不更改 {id} 属性的情况下将 getuser 路由到它自己的操作?

标签: asp.net-core-mvc

解决方案


您可以将操作过滤到两个不同的路线,例如:

[HttpGet("{id}")]
public IActionResult Action1(string id)
{
    return View();
}
[HttpGet("getuser/{id}")]
public IActionResult Action2(string id)
{
    return View();
}

对于Action2,您可以请求:http://localhost/getuser/id

事实上,如果我尝试以下路线:

[HttpGet("{id}")]
public IActionResult Action1(string id)
{
    return View();
}
[HttpGet("getuser")]
public IActionResult Action2()
{
    return View();
}

如果请求\getuser,它会触发Action2。确认进入\getuser


推荐阅读