【问题标题】:Possible to make "controller-less" urls with ASP.NET MVC?可以使用 ASP.NET MVC 制作“无控制器”网址吗?
【发布时间】:2013-01-16 21:58:17
【问题描述】:

我正在使用 ASP.NET MVC 4、.NET 4.5。除了为每个“动作”创建单独的控制器之外,还有什么方法可以拥有“无控制器”的网址?

我的意思是,有一个充满动作的 Home 控制器。网址如:

  • site.com/Home/关于
  • site.com/Home/Contact

成为

  • site.com/About
  • site.com/Contact

但仍使用 Home 控制器。

【问题讨论】:

    标签: asp.net-mvc url routing controller asp.net-mvc-routing


    【解决方案1】:

    您可以像这样定义不包含控制器名称的路由:

    routes.MapRoute(
        "About",                                       // Route name
        "About/",                                      // URL with parameters
        new { controller = "Home", action = "About" }  // Parameter defaults
    );
    
    routes.MapRoute(
        "Contact",                                       // Route name
        "Contact/",                                      // URL with parameters
        new { controller = "Home", action = "Contact" }  // Parameter defaults
    );
    

    【讨论】:

    • 谢谢,这很好用:routes.MapRoute( name: "NoController", url: "{action}/{id}", defaults: new { controller = "Home", action = "Index ", id = UrlParameter.Optional });
    猜你喜欢
    • 2011-07-15
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    相关资源
    最近更新 更多