Asp.net MVC View视图中如何获取Controller控制器的名称
2016-11-22 13:09:24  By: dwtedx

在.NET MVC的开发过程中、很多情况都会涉及到获取Controller名称、比如在视图中做跳转、在过滤器中验证等需求、下面呢就给大家提供4种方法获取Controller控制器的名称


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;
}


若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


猜你喜欢的

快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+