URL ASP.net 中的路由路径问题
URL Routing Path issue in ASP.net
我在 url 路由方面遇到了非常奇怪的问题。我像那样为菜单栏定义了 3 个路由
routes.MapPageRoute("Article", "Article/{id}/{title}", "~/article.aspx");
routes.MapPageRoute("Contact", "Contact", "~/contact.aspx");
routes.MapPageRoute("Category","Category/{id}/{name}","~/category.aspx");
当我点击联系我得到 www.website.com/Contact
然后我点击一篇文章我得到 www.website.com/Article/id/title
并且所有链接都有效。
但是当我先点击一篇文章然后点击联系人时,我有 www.website.com/Article/id/title/contact
,或者 www.website/category/id/name/contact
此问题仅在从参数路由单击到非参数路由时出现。如果您有任何想法,我将很高兴。谢谢。
您的联系人 link 不是应用程序根目录亲属。您需要使其成为应用程序根目录。 Web 窗体中最简单的方法是切换为使用控件而不是普通锚标记。
<asp:HyperLink runat="server" NavigateUrl="~/Contact" Text="Contact" />
否则,当您尝试在不使其成为应用程序根目录的情况下导航到 Contact 时,它会假定 Contact 低于当前 URL 中最后一段的级别(因为 URL' s 曾经绑定到目录而不是语义路由,例如:在 www.website.com/Article/id/title
中它认为标题是目录)。
请注意,您也可以像 GetRouteUrl
那样在普通锚标记中执行一些内联 C#,但我记不起要使用的正确函数调用。 ResolveUrl
或 ResolveClientUrl
或类似的东西。
我在 url 路由方面遇到了非常奇怪的问题。我像那样为菜单栏定义了 3 个路由
routes.MapPageRoute("Article", "Article/{id}/{title}", "~/article.aspx");
routes.MapPageRoute("Contact", "Contact", "~/contact.aspx");
routes.MapPageRoute("Category","Category/{id}/{name}","~/category.aspx");
当我点击联系我得到 www.website.com/Contact
然后我点击一篇文章我得到 www.website.com/Article/id/title
并且所有链接都有效。
但是当我先点击一篇文章然后点击联系人时,我有 www.website.com/Article/id/title/contact
,或者 www.website/category/id/name/contact
此问题仅在从参数路由单击到非参数路由时出现。如果您有任何想法,我将很高兴。谢谢。
您的联系人 link 不是应用程序根目录亲属。您需要使其成为应用程序根目录。 Web 窗体中最简单的方法是切换为使用控件而不是普通锚标记。
<asp:HyperLink runat="server" NavigateUrl="~/Contact" Text="Contact" />
否则,当您尝试在不使其成为应用程序根目录的情况下导航到 Contact 时,它会假定 Contact 低于当前 URL 中最后一段的级别(因为 URL' s 曾经绑定到目录而不是语义路由,例如:在 www.website.com/Article/id/title
中它认为标题是目录)。
请注意,您也可以像 GetRouteUrl
那样在普通锚标记中执行一些内联 C#,但我记不起要使用的正确函数调用。 ResolveUrl
或 ResolveClientUrl
或类似的东西。