[英]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.