2013-11-03 43 views
0

我在一個asp.net web表單應用程序中工作。我使用RegisterRoutes在這裏實現了URL路由,如下所示:使用註冊路由在asp.net web表單中更新路由

void Application_Start(object sender, EventArgs e) 
    { 
     // Code that runs on application startup 
     RegisterRoutes(RouteTable.Routes);  
    } 


    void RegisterRoutes(RouteCollection routes) 
     { 
      int language = 2; 
      routes.MapPageRoute("City1Route", "vacancies/" + HRTabs.GetCityTabLink(1, language), "~/City1.aspx"); 
      routes.MapPageRoute("City2Route", "vacancies/" + HRTabs.GetCityTabLink(2, language), "~/City2.aspx"); 
      routes.MapPageRoute("City3Route", "vacancies/" + HRTabs.GetCityTabLink(3, language), "~/City3.aspx"); 
      routes.MapPageRoute("City4Route", "vacancies/" + HRTabs.GetCityTabLink(4, language), "~/City4.aspx"); 
      routes.MapPageRoute("default", "vacancies/{language}", "~/City1.aspx"); 
     } 

我正在使用數據庫中的值創建映射。

在這個應用程序。我正在更新表格(路線)。我希望這些更改在保存功能完成後自動進行描述,但由於Registerroutes在應用程序啓動功能中,因此不會發生。

如果我嘗試調用RegisterRoutes(RouteTable.Routes);點擊Save按鈕,我得到路由已經註冊的錯誤。

請給我一個解決方案。

回答

0

嘗試在註冊更新的路由之前清除路由表。例如:

void RegisterRoutes(RouteCollection routes) 
    { 
     int language = 2; 
     routes.Clear(); 
     routes.MapPageRoute("City1Route", "vacancies/" + HRTabs.GetCityTabLink(1, language), "~/City1.aspx"); 
     routes.MapPageRoute("City2Route", "vacancies/" + HRTabs.GetCityTabLink(2, language), "~/City2.aspx"); 
     routes.MapPageRoute("City3Route", "vacancies/" + HRTabs.GetCityTabLink(3, language), "~/City3.aspx"); 
     routes.MapPageRoute("City4Route", "vacancies/" + HRTabs.GetCityTabLink(4, language), "~/City4.aspx"); 
     routes.MapPageRoute("default", "vacancies/{language}", "~/City1.aspx"); 
    }  
+0

它不會給錯誤,現在當我再次註冊路線,但鏈接路線沒有更新。新的url沒有顯示pahe的位置,因爲舊url(用於應用程序開始的註冊路徑)顯示 – DotnetSparrow

+0

因此,如果我明白,您有一個頁面顯示一組鏈接,其中的url是從路由表派生的。更新路由表後,應用程序是否會呈現鏈接?如果您更詳細地描述了您的應用程序並/或給出了代碼示例,說明鏈接是如何定義和呈現的,則可能會有所幫助。 –

+0

是@Paul,我有一張表,其中保存了空位/城市1,空位/城市2.兩個鏈接和registerroutes使用此表來獲取/設置路由網址。 app_start中使用的註冊路線設置了url,但是當我編輯表值時,清除路線並重新註冊它們,它們在db中得到更新,鏈接指向新值,但路由集合具有舊路由值。 – DotnetSparrow