我在ASP.NET Core Web API中遇到URL路由问题。当URL继续点(。)时,它返回404 not found。例如,
该代码不适用于电子邮件,但不能使用点号
public class TestController : Controller{
{
[HttpGet]
[Route("{id:int}")]
public IActionResult Get(int id)
{
//whatever
}
[HttpGet]
[Route("{id:int}/{name:alpha}")]
public IActionResult Get(int id, string name)
{
//whatever
}
}
但是,这可行
public class TestController : Controller{
{
[HttpGet("GetById/{id}")]
public IActionResult Get(int id)
{
//whatever
}
[HttpGet("GetByName/{id}/{name}")]
public IActionResult Get(int id, string name)
{
//whatever
}
}
如何解决该问题?
答案 0 :(得分:2)
您的问题是
[Route("{id:int}/{name:alpha}")]
您说的是仅接受字母字符,这意味着a-z和A-Z不包含任何特殊字符。您最好使用正则表达式来验证它是否始终是电子邮件地址。
尝试
[Route("{id:int}/{name}")]