Có thể tìm ra bộ điều khiển/tác vụ hiện đang thực hiện trong OnActionExecuting không?Làm thế nào để có được tên điều khiển và hành động trong OnActionExecuting?
Trả lời
Bạn có thể sử dụng ActionDescriptor
của ActionExecutingContext
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
var descriptor = filterContext.ActionDescriptor;
var actionName = descriptor.ActionName;
var controllerName = descriptor.ControllerDescriptor.ControllerName;
......
base.OnActionExecuting(filterContext);
}
@ VSG24 - nó có chính xác hơn câu trả lời được đánh giá cao nhất ở trên không? Không phải là đối kháng, trung thực muốn biết bởi vì không ai được đánh dấu là chính xác. –
Bạn có thể thử các ActionDescriptor
của ActionExecutingContext
như sau:
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
string actionName = filterContext.ActionDescriptor.ActionName;
string controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName
.....
base.OnActionExecuting(filterContext);
}
Bạn có thể nhìn vào RouteData
:
Request.RequestContext.RouteData.Values["Controller"];
Request.RequestContext.RouteData.Values["Action"];
var controllerName = (string)routingValues["controller"];
var actionName = (string)routingValues["action"];
ActionExecutingContext bối cảnh này sẽ là bối cảnh của bạn ....
var actionName = ((Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor) context.ActionDescriptor) .ActionName; var controllerName = ((Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor) context.ActionDescriptor) .ControllerName;
Nếu bất kỳ câu trả lời nào trong số này giải quyết được vấn đề của bạn, bạn nên xem xét việc thực hiện một câu trả lời. – PickYourPoison
@loyalflow hãy để tôi trở thành Navi ở đây bằng cách nói "Hey! Nghe! Đánh dấu câu trả lời" – Dbl