我刚刚从MVC 4升级到5,并开始使用属性路由。 它工作完美,易于实施。MVC属性路由,重定向旧网址
但是,由于网站已经连续数月没有链接到网站,包括搜索引擎。 旧的网址无效,因此我需要永久重定向它们。 我不确定最好的方法是什么。我认为如果我在route.config中创建了一个路由,它将作为路由属性的备份工作。但它似乎只是一个有效的(第一次服务)。
例.. 旧的URL:/银行/ 5 新的URL:/ superbank/5
属性路线是这样的:
[Route("superbank/{id}")]
而且route.config:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.LowercaseUrls = true;
routes.MapMvcAttributeRoutes();
routes.MapRoute(
"BankDetails",
"bank/{id}",
new { controller = "Home", action = "bank" }, //the action is still called bank, not superbank
new { id = @"^\d+$" }
);
使用此代码,只有超级银行/ 5将工作,而不是银行/ 5 如果我将MapMvcAttributeRoutes()放在MapRoute之下,那么您的ur ls将工作,项目中的所有URL将被创建并指向bank/5。
任何想法? 我应该使用global.asax还是IIS url重写?
我不想重命名该操作,也无法创建两个操作,一个操作为路由银行/ {id},另一个操作为超级银行/ {id}。而且这不仅仅是一个动作,它总共大概有30个:) – Andreas