如何在dotNet Core中获取Route属性的值

时间:2018-08-17 21:12:57

标签: asp.net-mvc .net-core asp.net-core-mvc

我有一个像这样启动的控制器

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

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

“ Request.Path”返回它,但是如果我向该方法添加了一条路由,例如

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

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

1 个答案:

答案 0 :(得分:1)

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

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