簡體   English   中英

ASP.net中的URL路由路徑問題

[英]URL Routing Path issue in ASP.net

我對網址路由確實感到很奇怪。 我為菜單欄定義了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/contactwww.website/category/id/name/contact

僅當單擊從參數路徑到非參數路徑時,才會出現此問題。 如果您有任何想法,我會很高興。 謝謝。

您的聯系鏈接不是應用程序根目錄。 您需要使其與應用程序成為根目錄。 Web窗體中最簡單的方法是切換為使用控件而不是普通錨標記。

<asp:HyperLink runat="server" NavigateUrl="~/Contact" Text="Contact" />

否則,當您嘗試導航至Contact而不使其成為應用程序的根目錄時,它會假定Contact處於當前URL中最后一個段的級別之下(因為URL過去一直綁定到目錄而不是語義路由,例如:in www.website.com/Article/id/title它認為標題是目錄)。

請注意,您還可以在普通錨標記中執行一些內聯​​C#,類似於您執行GetRouteUrl的方法,但是我不記得要使用正確的函數調用了。 ResolveUrlResolveClientUrl或類似的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM