4
我有一个传统的asp.net网站我正在迁移到asp.net mvc。asp.net mvc传统路由映射
我想将现有的网址永久重定向到asp.net mvc控制器。我有控制器与这些链接的新位置的意见,我想做一个301现有网页上的重定向到新的意见。
我有两个不同类型的网址:
类型2 URL被从之前asp.net的MVC路由处理现有的URL重写模块的结果。
我现有的重定向代码:
Response.Clear();
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", url);
Response.End();
我应该在哪里做重定向?
我看到两个选项:
的Application_BeginRequest - 使用正则表达式来解析URL
我喜欢它:
- 我已经检查大写的URL重定向到小写的网址
- 我有机会直接处理响应而无需返回ň的ActionResult
我不喜欢它什么:
- URL类型#2从上必须映射到新的控制器/视图,这意味着我需要做一些数据库努力获取路径的URL
控制器动作 - 使用路由&控制器做重定向
我喜欢它:
- 我可以做干净的数据库的工作,我需要
我不喜欢它什么:
- 的控制器需要返回一个视图,而我直接操纵响应流来创建301.
任何建议将是伟大的,谢谢。
我一直倾向于控制器。不在global.asax中调用服务层是我的卖点。奇怪的部分直接与Response相混淆并返回一个空视图。 – blu 2009-07-09 19:14:28