如何在.Net Core 2.2中获取路由匹配模板?

时间:2019-03-10 16:55:37

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

在我的控制器上方拥有此属性:

[Route("preflight/{textSlug}")]
[Route("magazine/{textSlug}")]
[Route("content/{textSlug}")]

如何获取模板的第一部分(例如:飞行前) 不使用:

var path = Request.Path.Value.ToLower();
if (path.Contains("preflight")

不是正则表达式。

2 个答案:

答案 0 :(得分:0)

要获取当前的请求路由模板,您可以尝试ControllerContext.ActionDescriptor.AttributeRouteInfo.Template

[Route("preflight/{textSlug}")]
[Route("magazine/{textSlug}")]
[Route("content/{textSlug}")]
public IActionResult Privacy()
{ 
    var route = ControllerContext.ActionDescriptor.AttributeRouteInfo.Template;
    return View();
}

答案 1 :(得分:0)

如何给Route一个Name,例如[Route("preflight/{textSlug}", Name="preflight")]

您可以通过以下方式获取请求使用的路由:

var name = ControllerContext.ActionDescriptor.AttributeRouteInfo.Name;