1

我有一个这样开始的控制器

[Route("api/v1/[controller]")]
public class ReportController : ControllerBase

我想知道是否有一种方法可以在其中一种方法中获取“api/v1/report”。

“Request.Path”返回它,但如果我添加了一个路由到方法,例如

[HttpGet("store/{id}")]

它返回添加到它的内容,我想可靠地获得基本路线,而不必进行字符串操作。

4

1 回答 1

3
this.GetType().CustomAttributes
            .FirstOrDefault(r => r.AttributeType == typeof(RouteAttribute))
            .ConstructorArguments[0].Value.ToString()
            .Replace("[controller]",(string)this.RouteData.Values["controller"]);

我可以通过四处挖掘找到它,尽管我希望有一种更清洁的方法来获得它。这将返回一个字符串“api/v1/report”

于 2018-08-17T21:36:21.563 回答