2011-12-15 160 views
1

我使用.Net 4.0框架,並做一些網址路由。這不是一個MVC項目,而是一個winform項目。我創建了兩條路線在Global.asax像這樣:Asp.net 4.0網址路由協同網址

 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。如果我再次點擊'document/accepted',網址將如下所示:

http://localhost/documents/documents/accepted 

此外,未找到並呈現頁面。如果我點擊幫助鏈接然後點擊文檔,也會發生同樣的事情。該網址將如下所示:

http://localhost/resource/documents/pending 

爲什麼路由連接url?我怎樣才能解決這個問題?

在此先感謝

回答

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

+0

你是正確的。我必須做的改變才能使它工作的是鏈接網址。以前我鏈接到'documents/pending'我改變了'/ documents/pending',並且一切正常。當我試圖向我的路由URL添加'〜/'時,它拋出了這個錯誤:路由URL不能以'/'或'〜'開頭,它不能包含'?'字符。謝謝你的幫助 – rross 2011-12-15 15:27:49