我有一个令人困惑的问题。我必须在ASP.NET MVC中转换ASP.NET Web应用程序。一切都很顺利,但问题是,网站所有者希望页面的网址不应该更改意味着如果任何网页有网址http://abc.com/a.aspx那么它应该是这样的。 现在我已经告诉我的团队成员,无法在ASP.NET MVC中广播任何扩展名,如.aspx扩展名,但他告诉我要搜索它。 因为我做了很多搜索,但没有找到任何方法来执行它。 是否有可能我们可以通过某些路由配置在ASP.NET MVC2或3中的URL中广播.aspx扩展名,以便页面URL不会更改。
任何帮助将不胜感激。
答案 0 :(得分:1)
是的,请看一下这篇文章:
Integrating ASP.NET MVC 3 into existing upgraded ASP.NET 4 Web Forms applications
Hanselman还制作了一个NuGet套装,只需点击几下就能很好地为你滚动球:
我个人使用这个NuGet包进行ASP.NET到MVC 3的转换。我们能够从同一个解决方案同时运行两个版本的应用程序,非常好!
答案 1 :(得分:0)
您可以通过多种方式实现这一目标。最简单的方法是使用IIS Url Rewriting将任何.aspx文件重写为其等效的MVC路由。
另一种方法是简单地创建与.aspx扩展名匹配的路由,并将它们路由到您的Controller / Action。即:
routes.MapRoute("Default", "{controller}/{action}.aspx",
new { controller = "Home", action = "Index" });
这里的缺点是你不能使用友好的参数,你可以,但它可能会破坏现有的URL。他们看起来像blah.com/blah/blah.aspx/blah。当然,查询字符串参数仍然有效。
第三种方法是简单地设置IIS以将.aspx的任何扩展名重定向到其等效的MVC路由。