代码之家  ›  专栏  ›  技术社区  ›  Toran Billups

编写自定义aspnet mvc操作而不使用操作

  •  1
  • Toran Billups  · 技术社区  · 14 年前

    我想写一个自定义路由,将允许以下

    http://localhost/blog/tags/foo

    目前这才是真正可行的

    http://localhost/tags/Index/nhibernate

    我试过以下方法,但没有成功-任何帮助都将不胜感激

    routes.MapRoute(
        "Tags",
        "{controller}/{id}",
        new { Controller = "Tags", action = "Index", id = UrlParameter.Optional }
    );
    
    routes.MapRoute(
        "Tags",
        "blog/{controller}/{id}",
        new { Controller = "Tags", action = "Index", id = "" }
    );
    
    1 回复  |  直到 5 年前
        1
  •  2
  •   Matthew Dresser    14 年前

    您可以在global.asax中使用以下内容:

    routes.MapRoute("Tags",
                    "blog/tags/{TagName}", 
                    new { Controller = "Tags", action = "ShowTag", TagName = "" });
    

    public ActionResult ShowTag(string TagName)
    {
        //do stuff here to get Id from tag name and get other data etc...
        return View();
    }
    

    请注意,在Global.asax.cs中映射路由的顺序 很重要。