如何在ASP.NET MVC视图中返回当前操作?

299

我想在母版页中设置一个 CSS 类,它取决于当前的控制器和操作。我可以通过 ViewContext.Controller.GetType().Name 访问当前的控制器,但是如何获取当前的操作(例如 IndexShow 等)?

11个回答

0

扩展Dale Ragan的回答,他为重用所创造的示例,创建一个从Controller派生的ApplicationController类,并让所有其他控制器都从ApplicationController类派生,而不是直接从Controller派生。

示例:

public class MyCustomApplicationController : Controller {}

public class HomeController : MyCustomApplicationController {}

在你的新ApplicationController上创建一个名为ExecutingAction的属性,其签名如下:
protected ActionDescriptor ExecutingAction { get; set; }

然后在OnActionExecuting方法中(来自Dale Ragan的答案),只需将ActionDescriptor分配给此属性,您就可以在任何控制器中需要时访问它。
string currentActionName = this.ExecutingAction.ActionName;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接