没有操作的mvc3 URL路由

时间:2013-06-11 16:44:31

标签: asp.net-mvc-3 maproute

我有一个名为文章的控制器,我在网址中的文章采用 {controller} / {action} / {id} / {title} / {mixed} 如何才能获得 {controller} / {id} / {title} / {mixed}

我的路线值是

routes.MapRoute(
            "articles", 
            "{controller}/{action}/{id}/{stitle}/{mixed}", 
  new { controller = "article",action="detail",mixed= UrlParameter.Optional} // Parameter defaults

        );

我试过这个

 routes.MapRoute(
            "articles", // Route name
            "{controller}/{id}/{title}/{mixed}",
  new { controller = "article",action="detail",mixed= UrlParameter.Optional}

        );

但得到404错误 因为我的链接是

形式
@Html.ActionLink("My article", "detail", "article", new { id = item.ArticleID, title = item.title, mixed = item.mixed })

1 个答案:

答案 0 :(得分:2)

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
        "ArticleWithoutAction",              // Article Without Action name
        "{controller}/{id}/{name}", 
        new { controller = "Article", 
              action     = "detail", 
              id         =  UrlParameter.Optional, 
              title      =  UrlParameter.Optional, 
              mixed      =  UrlParameter.Optional
            } // Parameter defaults
    );

    routes.MapRoute(
        "ArticleWithAction",                  // Article With Action name 
        "{controller}/{action}/{id}/{name}", 
        new { controller = "Article", 
              action     = "detail", 
              id         =  UrlParameter.Optional, 
              title      =  UrlParameter.Optional, 
              mixed      =  UrlParameter.Optional
            } // Parameter defaults
    );

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}", 
        new { controller = "Article", 
              action     = "detail" 
            } // Parameter defaults
    );
}