花了很多时间想知道为什么在MVC中进行永久重定向这么难,我遇到了这个页面http://www.eworldui.net/blog/post/2008/04/ASPNET-MVC---Legacy-Url-Routing.aspx,这使得它看起来中等直接。
我下载了示例代码,将所有帮助程序类复制到一个新的MVC项目中,并将以下内容添加到RouteConfig.RegisterRoutes()方法中......
routes.Add("Jim1", new LegacyRoute("Default.aspx", "Home", new LegacyRouteHandler()));
我的想法是将/Default.aspx的请求映射到/ Home。但是,这只是在浏览器中提供了404。在调试时,它会在抛出“无效URL”异常的行上的LegacyHandler.ProcessRequest()方法中断。
有没有人使用过可以提供建议的代码?或者,是否有人为此提供SIMPLE解决方案?我有一个旧的ASP.NET WebForms站点,我已转换为MVC,并希望设置重定向。我无法相信它有多难。
任何想法?
答案 0 :(得分:0)
如果它对任何人有帮助,我会进行更多搜索,并找到一个相当简单的解决方案。
如果查看this blog post,您会发现一种相当简单的方法,需要您在解决方案中添加一些类。我创建了一个新的类库,并在那里添加了它们。然后我从我的MVC项目中引用了这个,并在我的RegisterRoutes()方法中添加了如下所示的行......
routes.MapLegacyRoute(null, "Default.aspx", new {controller = "Home", action = "Index"});
routes.MapLegacyRoute(null, "About.aspx", new {controller = "Home", action = "About"});
routes.MapLegacyRoute(null, "Contact.aspx", new {controller = "Home", action = "Contact"});
工作就像一种享受!
希望这有助于某人。如果我早些发现这个,我本可以节省时间!