如何将Homepage.aspx重定向到MVC默认路由?

时间:2011-01-07 13:59:38

标签: asp.net-mvc routing

我们正在开发一个新系统来取代现有系统。

新系统是ASP.NET MVC,所以我们正常地定义控制器和操作的路由。

旧系统作为传统ASP.NET,因此URL由许多.aspx页面组成。

我们希望设置重定向,以便当用户尝试访问/Homepage.aspx时(很多用户会将其加入书签),他们将被重定向到新系统的默认路由,这只是{{1 }}

对我来说,最好的方法是什么?

编辑:@Chance建议我指定路线:

/

这有效,但我想进行重定向,因为我不希望地址栏中有routes.MapRoute("Homepage", "Homepage.aspx", new { controller = "controller", action = "homepage" });。还有什么我可以做的吗?

4 个答案:

答案 0 :(得分:5)

您可以查看following blog post,其中说明了如何实现将执行301永久重定向的旧路由处理程序。

答案 1 :(得分:4)

将此代码放在global.asax文件中:

protected void Application_BeginRequest(object sender, EventArgs e)
{    
    if (Request.Url.ToString().ToLower().Contains("homepage.aspx"))
    {            
        // use RedirectPermanent for 301, or Redirect for 302
        Context.Response.RedirectPermanent("/");
    }
}

您可以修改此代码以应用于其他旧的“.aspx”页面。

答案 2 :(得分:1)

您可以为默认控制器/操作添加一个硬编码的附加路径。即

routes.MapRoute("Homepage", "Homepage.aspx", new { controller = "controller", action = "homepage" });

答案 3 :(得分:0)

另一种选择是简单地创建一个静态页面来用Home重定向替换HomePage.aspx。这将允许您向用户显示一条消息,通知他们该网站已更改,并敦促他们更新他们的书签。

您可以通过为404创建指向静态页面或特定URL的自定义错误处理程序,将其扩展到整个站点。