简体   繁体   中英

Web API partially (start with) match route in Controller

How can I map multiple urls to one action method? For example http://localhost:10000/api/ABC and http://localhost:10000/api/ABCDCD will map to same action name because both starts with ABC. I can't add ABC and ABCDCD as routes because I would not know in advance what user will pass.

Here is my current method

[HttpGet]
[Route("~/api/ABC/")]
public HttpResponseMessage GetData()
{
}

I tried using {ver} but it did not work.

try this

HttpGet]
[Route("~/api/ABC")]
[Route("~/api/ABCDCD")]
public HttpResponseMessage GetData()

You can use patterns .

[HttpGet]
[Route("~/api/ABC{data}")]
public IActionResult GetData(string data)
{
    return Ok(data);
}

When you request https://localhost/api/ABCEXAMPLE the value of string data would be EXAMPLE . You can even do not use it if you don't want.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM