2013-10-12 81 views
2

我有一個ASP.NET web窗體項目,具有以下路線。當我輸入一個URL,像爲什麼我的路線不直接進入我的頁面?

static void RegisterRoutes(RouteCollection routes) 
{ 
    RouteTable.Routes.Ignore("{resource}.axd/{*pathInfo}"); 

    routes.MapPageRoute("Sidevisning", 
         "{" + Utils.Constants.RouteVariables.Article + "}", 
         "~/ArticleLayout.aspx"); 



    routes.MapPageRoute("Tags", 
         "tags/{" + Utils.Constants.RouteVariables.Tags + "}", 
         "~/TagsPage.aspx"); 

    routes.MapPageRoute("Forumpost", 
         "forums/topic/{" + Utils.Constants.RouteVariables.Post + "}", 
         "~/ForumPost.aspx"); 

    routes.MapPageRoute("Bruger", 
         "users/{" + 
         Utils.Constants.RouteVariables.UserProfileId + "}", 
         "~/UserProfile.aspx"); 

    routes.MapPageRoute("Offer", 
         "offers/{" + Utils.Constants.RouteVariables.OfferForm + "}", 
         "~/Offer.aspx"); 


    routes.MapPageRoute("Ret opgaver", 
         "assignments/{" + Utils.Constants.RouteVariables.Assignment + "}", 
         "~/ReviewAssignments.aspx"); 


    routes.MapPageRoute("Tutoring with subject", 
         "tutoring/{" + Utils.Constants.RouteVariables.TutorSubject + "}", 
         "~/tutoring/tutors.aspx"); 

    routes.MapPageRoute("Tutoring with subject and city", 
         "tutoring/{" + Utils.Constants.RouteVariables.TutorSubject + "}/{" + Utils.Constants.RouteVariables.TutorCity + "}", 
         "~/tutoring/tutors.aspx"); 

    routes.MapPageRoute("Tutoring with subject, city and level", 
         "tutoring/{" + Utils.Constants.RouteVariables.TutorSubject + "}/{" + Utils.Constants.RouteVariables.TutorCity + "}/{" + Utils.Constants.RouteVariables.TutorLevel + "}", 
         "~/tutoring/tutors.aspx"); 


    routes.MapPageRoute("Blog kategori", 
       "category/{BlogCategoryName}", 
       "~/BlogCategory.aspx"); 



    // be careful to switch around , it might give some pretty fucked up errors 



    routes.MapPageRoute("Laes Blog", 
     "{Year}/{Month}/{BlogHeadline}", 
     "~/ReadBlogEntry.aspx"); 


    routes.MapPageRoute("Subject details", 
        "subject/{" + Utils.Constants.RouteVariables.SubjectChosen + "}/{" + Utils.Constants.RouteVariables.SubjectAction + "}", 
        "~/SubjectDetails.aspx"); 


} 

所以:

http://localhost:5744/subject/danskundervisning/articleoverview 

我想打SubjectDetails.aspx這通常工作正常,但我不能讓最後一個工作。

但是,我點擊了其他頁面並重定向到了我的首頁。我無法找到我正在碰到什麼頁面,這有點令人討厭。

從這些稀疏的信息,有什麼看起來在我的路線錯誤?當我輸入我寫的URL時,不應該最後一個工作嗎?

我不認爲有任何興趣,但這裏是我RouteVaraibles:

public class RouteVariables 
     { 
      public const string Article = "article"; 
      public const string OfferForm = "offers"; 
      public const string Forumcategory = "forumname"; 
      public const string Post = "posturl"; 
      public const string UserProfileId = "userid"; 
      public const string UserProfileProfilename = "userprofilename"; 
      public const string Tags = "tags"; 
      public const string Assignment = "assignment"; 
      public const string TutorSubject = "tutorsubject"; 
      public const string TutorCity = "tutorcity"; 
      public const string TutorLevel = "tutorlevel"; 

      public const string SubjectAction = "subjectionaction"; 

      public const string SubjectChosen = "subjectchosen"; 


     } 

回答

4

路線的順序是非常重要的。 你總是會被重定向到LaesBlog Route。 所以,你需要把一個過去像這樣的

routes.MapPageRoute("Subject details", 
       "subject/{" + Utils.Constants.RouteVariables.SubjectChosen + "}/{" + Utils.Constants.RouteVariables.SubjectAction + "}", 
       "~/SubjectDetails.aspx"); 

routes.MapPageRoute("Laes Blog", 
    "{Year}/{Month}/{BlogHeadline}", 
    "~/ReadBlogEntry.aspx"); 

希望它可以幫助

+0

剛剛做了改變,它的工作。 BIG虛擬高五給你! –

1

我也面臨着同樣的問題。我改變了路線定義的順序,它工作。這裏的問題是Route「Laes Blog」具有所有動態參數,而「Subject Details」路徑具有一個靜態(硬編碼)參數和2個動態參數。但兩者都有3個參數,所以會有衝突。

總之,總是寫最後沒有任何靜態參數的路由。

我最近發表在我的博客對同一問題的文章在以下鏈接

http://karmic-development.blogspot.in/2013/10/url-routing-in-aspnet-web-forms-same.html

我也貼我面臨在我以前的博客文章實現URL路由等問題。

+0

與論壇網站不同,我們不使用「謝謝」或「任何幫助表示讚賞」,或在[so]上簽名。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed-from-posts)。 –

+0

好的。請記下它.... –

相關問題