[英]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/contact
或www.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
的方法,但是我不記得要使用正確的函數調用了。 ResolveUrl
或ResolveClientUrl
或類似的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.