none
Asp.net MVC 是否不支持两个路由器共存阿? RRS feed

  • 问题

  • routes.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Article", action = "Index", id = 1 });

    routes.Add(new Route("{id}", parameters, new LegacyRouteHandler()));

    当两个同时存在时,后面那个route更本就不会使用,只有注释丢第一个,第二个才会生效,这个很郁闷,不是是否我理解的不够,还是没有找到窍门

    官方同样有人问同样的问题 http://forums.asp.net/t/1378263.aspx

    高手赐教了,谢谢

    你找的人正在找你
    2009年2月1日 10:34

答案

  • 我觉得应该是可以的,但是你这两个路由的路径应该是有区别的,而不是还是同样的路径的规则,例如你可以另外使用一个访问另外页面规则,如果都是访问一个页面或者一个路径的话,有可能就使用默认的。。因为既然能够找到了,那应该不会再找吧。。我的理解。。
    Jing Guo's Facebook profile
    2009年2月1日 10:53
    版主
  • 在Preview版的时候我试了一下route好像是先从第一条注册的开始匹配~匹配不上就匹配第二条~直到有一条匹配上后就按这条解析~后面的忽略~如果全部不能匹配则抛出Exception
    宠辱不惊,看庭前花开花落。 去留无意,望天上云卷云舒。
    2009年2月1日 13:42
    版主
  •  
    Snowdream 说:

    在Preview版的时候我试了一下route好像是先从第一条注册的开始匹配~匹配不上就匹配第二条~直到有一条匹配上后就按这条解析~后面的忽略~如果全部不能匹配则抛出Exception


    宠辱不惊,看庭前花开花落。去留无意,望天上云卷云舒。



    我也觉得和这位MVP说的差不多。。如果匹配到了的话,应该不会继续匹配了。。要不然不是产生了一个循环呀。。
    Jing Guo's Facebook profile
    2009年2月1日 17:02
    版主
  • 楼主,你把两者的顺序换一下,试试! 在 URLrewrite 里面也会有这样的问题。
    2009年2月2日 2:33
    版主

全部回复

  • 我觉得应该是可以的,但是你这两个路由的路径应该是有区别的,而不是还是同样的路径的规则,例如你可以另外使用一个访问另外页面规则,如果都是访问一个页面或者一个路径的话,有可能就使用默认的。。因为既然能够找到了,那应该不会再找吧。。我的理解。。
    Jing Guo's Facebook profile
    2009年2月1日 10:53
    版主
  • 我也觉得,可以,刚刚看了下。

    路由是在应用程序启动的时候就注册了,下一个请求过来已经是用现成的路由设置了,而这个请求是如何选择适合的路由呢?我能指定一个路由规则吗?如何指定?

    你找的人正在找你
    2009年2月1日 11:09
  • 在Preview版的时候我试了一下route好像是先从第一条注册的开始匹配~匹配不上就匹配第二条~直到有一条匹配上后就按这条解析~后面的忽略~如果全部不能匹配则抛出Exception
    宠辱不惊,看庭前花开花落。 去留无意,望天上云卷云舒。
    2009年2月1日 13:42
    版主
  •  
    Snowdream 说:

    在Preview版的时候我试了一下route好像是先从第一条注册的开始匹配~匹配不上就匹配第二条~直到有一条匹配上后就按这条解析~后面的忽略~如果全部不能匹配则抛出Exception


    宠辱不惊,看庭前花开花落。去留无意,望天上云卷云舒。



    我也觉得和这位MVP说的差不多。。如果匹配到了的话,应该不会继续匹配了。。要不然不是产生了一个循环呀。。
    Jing Guo's Facebook profile
    2009年2月1日 17:02
    版主
  • 楼主,你把两者的顺序换一下,试试! 在 URLrewrite 里面也会有这样的问题。
    2009年2月2日 2:33
    版主