当前位置: 首页 > 编程笔记 >

Asp.net MVC中获取控制器的名称的方法

端木弘方
2023-03-14
本文向大家介绍Asp.net MVC中获取控制器的名称的方法,包括了Asp.net MVC中获取控制器的名称的方法的使用技巧和注意事项,需要的朋友参考一下

1、视图中  

string controller = ViewContext.RouteData.Route.GetRouteData(this.Context).Values["controller"].ToString();
    string controller = ViewContext.RouteData.Values["controller"].ToString();

2、控制器的action中

string controller = RouteData.Route.GetRouteData(this.HttpContext).Values["controller"].ToString(); 
    string controller = RouteData.Values["controller"].ToString(); 

3、过滤器中

  比如在ActionFilterAttribute中,这个时候一般是自己实现一个继承类,然后重写相关的方法。

  在重写的方法中如果需要控制器的名称。

 /// <summary>
/// 验证权限,用于检查用户是否已经登录(action执行前会先执行这里)
/// </summary>
/// <param name="filterContext"></param>
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
       string controller = filterContext.RouteData.Values["controller"].ToString(); 
controller = controller + "Controller";
}

4、公共方法中

 /// <summary>
/// 获取当前页面的Controller全名称
/// </summary>
/// <returns></returns>
public string GetCurrentController()
{
string controller = HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString();
if (!string.IsNullOrWhiteSpace(controller))
{
controller = controller + "Controller";
}
else
{
controller = "";
}
return controller;
}

以上所述是小编给大家介绍的Asp.net MVC中获取控制器的名称的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 问题内容: 有没有办法从AngularJS中的当前$ scope中获取控制器名称? 问题答案: 不,不可能。如果属于指令怎么办?没有属性可以检索有关该范围所属的控制器的信息。

  • 对于我们的web应用程序,我需要保存获取和显示的项的顺序,这取决于视图--或者准确地说--生成视图的控制器和操作(当然还有用户id,但这不是这里的重点)。 我认为,与其在每个控制器操作中自己给出一个标识符(以便使用它对DB输出进行视图依赖的排序),不如从控制器和操作方法中自动创建这个标识符更安全、更容易。 如何从控制器的操作方法中获取控制器和操作的名称?还是我需要反思?

  • 问题内容: 在 Java 6中 ,假设我具有以下方法签名: 我想知道在运行时传递给任何其他参数的值,这里重要的一点是我想通过参数名称获取该值。 我知道如何使用或获取参数类型的列表。 理想情况下,我想获取参数 名称 而不是类型的列表。有办法吗? 问题答案: 如果您告诉编译器将其包括在内,则可以使用参数名称(使用调试信息进行编译)。Spring 可以帮助您获取名称。该默认实现使用ASM 这样做。 与您

  • 问题内容: 我想基于我们加载的配置动态指定一个控制器。像这样: 我该怎么做呢?我以为这很容易,但是我似乎可以找到一种方法。 问题答案: 您想要做的是在调用其他指令之前先运行另一个指令,从某个模型获取控制器名称,然后删除新指令并添加指令,然后重新编译元素。 看起来像这样: 然后,您可以在模板中使用它,如下所示: 使用这样的控制器: 可能有一种插值的值()而不是解析它()的方法,但是由于某种原因,我无

  • 我正在设置我的入口控制器、入口类和入口,以在集群外部公开服务。这是全新的集群设置。 我已经使用 nginx 入口控制器设置了 nginx-ingress 控制器 <code>kubectl应用-fhttps://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.41.0/deploy/static/provider/b