如何将变量前缀添加到 ASP.Net 核心 API 路由



我有一个 ASP.Net Core API Web 应用程序。

控制器定义如下:

[Route("/api/[controller]")]
[ApiController]
 public class ValuesController : ControllerBase
 {
        // GET api/values
        [HttpGet]
        public ActionResult<IEnumerable<string>> Get()
        {
            return new string[] { "value1", "value2" };
        }
}

我希望能够使用表示客户的可变路径调用 API。 例如,我想做这样的事情:

[Route("/[customername]/api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
        // GET api/values
        [HttpGet]
        public ActionResult<IEnumerable<string>> Get()
        {
            // TODO: Somehow get the value of [customername]?
            return new string[] { "value1", "value2" };
        }
}

这可能吗?

只需使用路由参数:

[Route("{customername}/api/[controller]")]

最新更新