dev*_*ric 16 c# reflection asp.net-core-mvc asp.net-core
我想获取ASP.NET Core控制器的当前方法名称
我试过通过反射获取方法名称:
[HttpGet]
public async Task<IActionResult> CreateProcess(int catId)
{
string methodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
Run Code Online (Sandbox Code Playgroud)
但这给了我一个价值MoveNext而不是CreateProcess
请注意我不想使用ViewContext
string methodName = ActionContext.RouteData.Values["action"].ToString();
Run Code Online (Sandbox Code Playgroud)
因为我通过启动设置小写我的网址.以上将createprocess取代我CreateProcess
我最好想要一个简单的单行而不是多行扩展方法.
Fel*_* Av 21
您可以使用以下事实:它不仅仅是一个控制器而是使用ActionContext.ActionDescriptor.Name属性来获取操作名称
更新:(感谢Jim Aho)
最新版本适用于 -
ControllerContext.ActionDescriptor.ActionName
Run Code Online (Sandbox Code Playgroud)
dfm*_*tro 10
在ASP.NET Core中它似乎已经改变,你必须使用该ActionName属性
((Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor)ViewContext.ActionDescriptor).ActionName;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15743 次 |
| 最近记录: |