ASP.NET-MVC.如何从URL获取控制器名称?

前端之家收集整理的这篇文章主要介绍了ASP.NET-MVC.如何从URL获取控制器名称?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何使用我在Global.asax中定义的路由获取相对Url的控制器名称

例:

如果我有这样的路线:

routes.MapRoute(
                "Default",// Route name
                "{language}/{controller}/{action}/{id}",// URL with parameters
                new { controller = "Home",action = "Index",id = "",language = "en" }

从字符串“〜/ en / products / list”我想要产品(控制器名称).有没有现成的方法呢?

解决方法

请参阅Stephen Walther的博客文章 ASP.NET MVC Tip #13 – Unit Test Your Custom Routes

MvcFakes项目有一个旧的System.Web.Abstractions参考.所以你必须更换它
使用新的并重新编译项目以获取MvcFakes.dll.

这是我的代码

public string getControllerNameFromUrl()
{
    RouteCollection rc = new RouteCollection();
    MvcApplication.RegisterRoutes(rc);
    System.Web.Routing.RouteData rd = new RouteData();
    var context = new FakeHttpContext("\\" + HttpContext.Request.Url.AbsolutePath);
    rd = rc.GetRouteData(context);
    return rd.Values["action"].ToString();
}

在上面的代码中,“MvcApplication”是Global.asax中的类名.

祝你好运 !

原文链接:https://www.f2er.com/aspnet/251795.html

猜你在找的asp.Net相关文章