gpt4 book ai didi

c# - 如何使用 ASP.NET Core 获取当前路由名称?

转载 作者:行者123 更新时间:2023-12-04 04:26:58 26 4
gpt4 key购买 nike

我有一个写在 ASP.NET Core 2.2 框架之上的应用程序。

我有以下 Controller

public class TestController : Controller
{
[Route("some-parameter-3/{name}/{id:int}/{page:int?}", Name = "SomeRoute3Name")]
[Route("some-parameter-2/{name}/{id:int}/{page:int?}", Name = "SomeRoute2Name")]
[Route("some-parameter-1/{name}/{id:int}/{page:int?}", Name = "SomeRoute1Name")]
public ActionResult Act(ActVM viewModel)
{
// switch the logic based on the route name

return View(viewModel);
}
}

如何在操作和/或 View 中获取路线名称?

最佳答案

在 Controller 内部,您可以阅读 AttributeRouteInfo 来自 ControllerContext ActionDescriptor . AttributeRouteInfo有一个 Name 属性,其中包含您要查找的值:

public ActionResult Act(ActVM viewModel)
{
switch (ControllerContext.ActionDescriptor.AttributeRouteInfo.Name)
{
// ...
}

return View(viewModel);
}

在 Razor View 内部, ActionDescriptor可通过 ViewContext 获得属性(property):
@{
var routeName = ViewContext.ActionDescriptor.AttributeRouteInfo.Name;
}

关于c# - 如何使用 ASP.NET Core 获取当前路由名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57022268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com