繁体   English   中英

Asp.net 4.0 URL路由URL

[英]Asp.net 4.0 url routing concatinating url

我正在使用.Net 4.0框架并进行一些url路由。 这不是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
        );

当我单击站点导航中的链接(如“文档/待处理”)时,它将转到正确的位置并显示预期的URL。 如果我再次单击“文档/已接受”,则网址将如下所示:

http://localhost/documents/documents/accepted

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

http://localhost/resource/documents/pending

为什么路由将URL连接起来? 我怎样才能解决这个问题?

提前致谢

我认为,如果他们总是要扎根,则需要对路由进行不同的设置。 像这样:

     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
    );

原因是您将document / page.aspx附加到所处级别的末尾。 因此,如果您位于http://localhost/this/next/folder/document/accept并路由,则下一个路由会将路由附加到当前目录,因此http://localhost/this/next/folder/document/document/accept但是如果您按照我上面显示的那样进行路由,则会执行此操作,将您带到http://localhost/document/accept

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM