I want to get the current method name of my ASP.NET Core
controller
I have tried getting the method name through reflection:
[HttpGet] public async Task<IActionResult> CreateProcess(int catId) { string methodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
but this gives me a value of MoveNext
and not CreateProcess
Take note I don't want to use the ViewContext
string methodName = ActionContext.RouteData.Values["action"].ToString();
as I lowercase my urls via the startup settings.The above will get me createprocess
instead of CreateProcess
I preferably want an easy one-liner and not a multiline extension method.
You should not call a controller from the view. Add a property to your view model, set it in the controller, and use it in the view.
You can use the fact that it is not just any method but a controller and use ActionContext.ActionDescriptor.Name
property to get the action name
UPDATE: (thanks to Jim Aho)
Recent versions work with -
ControllerContext.ActionDescriptor.ActionName
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With