0

私はasp.net Webフォームアプリケーションで作業しています。次のように RegisterRoutes を使用して URL ルーティングを実装しました。

  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); を呼び出そうとすると、[保存] ボタンをクリックすると、ルートが既に登録されているというエラーが表示されます。

解決策を教えてください。

4

1 に答える 1

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");
    }    
于 2013-11-03T17:23:27.107 に答える