Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何在dotnetcore中获取路由属性的值_Asp.net Mvc_.net Core_Asp.net Core Mvc - Fatal编程技术网

Asp.net mvc 如何在dotnetcore中获取路由属性的值

Asp.net mvc 如何在dotnetcore中获取路由属性的值,asp.net-mvc,.net-core,asp.net-core-mvc,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}")] 它返回添加到它上面的内容,我希望可靠地获得基本路由,而不必进行字符串操作 this.GetType().Custo

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

[Route("api/v1/[controller]")]
public class ReportController : ControllerBase
我想知道是否有一种方法可以在其中一种方法中获取“api/v1/report”

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

[HttpGet("store/{id}")]
它返回添加到它上面的内容,我希望可靠地获得基本路由,而不必进行字符串操作

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

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

从技术上讲,控制器上的路由不是基本路由。整个内容都放在一起存储在路由表中。注意,我知道基本路由是协议/域等。只是不确定如何引用第一部分和第二部分