我正在一个 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); 单击"保存"按钮,出现"路由"已注册的错误。
请向我建议一个解决方案。
在注册更新的路由之前,请尝试清除路由表。例如:
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");
}