我正在使用.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
为什么路由连接网址?我怎样才能解决这个问题?
提前致谢
答案 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