配置如下:
 public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.MapRoute(
                "Default", // 路由名称
                "{controller}/{action}/{id}", // 带有参数的 URL
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值
            );            routes.MapRoute(
                 "about", 
                 "about.html", 
                 new { controller = "Pages", action = "about" } 
             );        }
访问http://localhost:17733/Pages/about.html这个地址报404错误。
输入这个地址http://localhost:17733/Pages/about 可以访问。

解决方案 »

  1.   

    你既然是mvc  后面是没有后缀的.. 
    http://localhost:17733/控制器/方法名
      

  2.   

    同意楼上,路由规则是{controller}/{action}
      

  3.   

    规则可以自己定的,这个MVC的路由很灵活,比也可以在后面加参数·
      

  4.   

    楼上全是胡扯,首先楼主的路由写错了,其次必须把两个路由的位置互换一下,mvc是按排列的先后次序来匹配的,即:
                routes.MapRoute(
                    "about",
                    "{controller}/{action}.html",
                    new { controller = "Pages", action = "about" }
                    );routes.MapRoute(
      "Default", // 路由名称
      "{controller}/{action}/{id}", // 带有参数的 URL
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值
      );
      

  5.   

    想优先访问得把你写的放Home上边,另外你的请求参数不能那样写,{controller}/{action}/{id}"要这种有controller参数的,你那样没有controller怎么请求页面,自己在好好看看吧,另外MVC默认是不带后缀的,你强加了后缀不知道会不会报错,我也没试过,你自己看看吧不行了在问
      

  6.   

    初学mvc,还是第一次看到有.html结尾的,吧
      

  7.   

    没有controller参数也可以。
    routes.MapRoute(
      "about",  
      "about.html",  
      new { controller = "Pages", action = "about" }  
      );
    这样,打入http://localhost/about.html时就根据缺省的controller,也就是Pages,调用about这个action。
      

  8.   

    Install-Package routedebugger 来调试
    hzzasdf 解释的没问题