Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在HtmlHelper扩展方法期间执行哪个操作_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 在HtmlHelper扩展方法期间执行哪个操作

Asp.net mvc 在HtmlHelper扩展方法期间执行哪个操作,asp.net-mvc,Asp.net Mvc,我正在研究一个生成HtmlHelper扩展方法的菜单。此方法需要知道正在执行的操作。因此,如果主/索引正在执行,扩展方法将显示指向其他“协调”操作的所有链接。从某种意义上说,在主控制器的索引操作执行期间,我需要知道的只是控制器的名称和正在执行的操作的名称,以便可以执行其他逻辑。这可能吗?试试这个 var action = HtmlHelper.ViewContext.RouteData.Values["action"]; var controller = HtmlHelper.ViewConte

我正在研究一个生成HtmlHelper扩展方法的菜单。此方法需要知道正在执行的操作。因此,如果主/索引正在执行,扩展方法将显示指向其他“协调”操作的所有链接。从某种意义上说,在主控制器的索引操作执行期间,我需要知道的只是控制器的名称和正在执行的操作的名称,以便可以执行其他逻辑。这可能吗?

试试这个

var action = HtmlHelper.ViewContext.RouteData.Values["action"];
var controller = HtmlHelper.ViewContext.RouteData.Values["controller"];

我使用过滤器属性执行类似的操作。您可以按如下方式获取操作名称:

filterContext.RouteData.Values["action"].ToString();

我用它来禁用代表当前上下文的菜单项。

我需要类似的东西,但不完全需要。我希望能够得到一些强类型的方法来知道哪个操作正在执行

因此,请在执行AOP时澄清,我只允许访问给定的操作,前提是用户拥有该操作的权限


使用字符串来确定要检查的规则的问题在于,如果某个开发人员重命名了某个操作,我不会得到一个编译错误,告诉我我的规则被破坏了。

先生,你是人类中的神。非常感谢你。