Asp.net 4.0 url路由连接url

时间:2011-12-15 15:08:04

标签: c# asp.net .net asp.net-routing

我正在使用.Net 4.0框架并进行一些网址路由。这不是一个MVC项目,而是一个winform项目。我在Global.asax中创建了两条路线,如下所示:

        routes.MapPageRoute(
           "review",      // Route name
           "documents/{type}",      // Route URL
           "~/default.aspx" // Web page to handle route
        );

        routes.MapPageRoute(
           "help",      // Route name
           "resource/help",      // Route URL
           "~/help.aspx" // Web page to handle route
        );

当我点击网站导航中的链接时,例如'documents / pending',它会转到正确的位置并显示预期的网址。如果我再次点击“文档/接受”,则网址将如下所示:

http://localhost/documents/documents/accepted

此外,找不到并呈现该页面。如果单击帮助链接然后单击文档,也会发生同样的事情。网址将如下所示:

http://localhost/resource/documents/pending

为什么路由连接网址?我怎样才能解决这个问题?

提前致谢

1 个答案:

答案 0 :(得分:1)

我认为如果他们总是要去根,我需要设置不同的路线。像这样:

     routes.MapPageRoute(
       "review",      // Route name
       "~/documents/{type}",      // Route URL
       "~/default.aspx" // Web page to handle route
    );

    routes.MapPageRoute(
       "help",      // Route name
       "~/resource/help",      // Route URL
       "~/help.aspx" // Web page to handle route
    );

原因是您将文档/ page.aspx附加到您所在级别的末尾。所以如果你在http://localhost/this/next/folder/document/accept 并且您路由下一个路线会将路线附加到您当前的目录http://localhost/this/next/folder/document/document/accept,但是如果您像我上面所示的那样路线,它会将您带到http://localhost/document/accept