如何设置MVC路由来处理旧的ASP经典页面重定向

时间:2009-06-26 17:34:38

标签: asp.net-mvc asp-classic routing

我正在将ASP经典网站迁移到ASP.net MVC 有没有办法将旧流量重定向到新流量?

示例:如何前往:

www.mydomain.com/viewpage.asp?pageid=1234

为:

www.mydomain.com/page/1234

2 个答案:

答案 0 :(得分:2)

研究这个问题我发现最好的方法是:

  1. 使用重定向引擎(例如urlrewriter.net
  2. 在BeginRequest方法中重定向
  3. 我最终使用了#2,因为它对我的项目来说更简单

    Sub Application_BeginRequest(ByVal sender As Object, _
                                            ByVal e As System.EventArgs)  
       Dim fullOriginalpath As String = Request.Url.ToString.ToLower
    
       If (fullOriginalpath.Contains("/viewpage.asp?pageid=")) Then
          Context.Response.StatusCode = 301 'issue a permanent redirect'
          Context.Response.Redirect("/page/" + getPageIDFromPath(fullOriginalpath))
        End If
    
    End Sub
    

    您也可以使用Context.RewritePath,但它不会更改客户端浏览器中的网址。

答案 1 :(得分:0)

看来您可能必须在404错误页面中使用response.redirect并将查询字符串输入映射到所需的新页面。绕道而行但