Asp.net mvc 从控制器重定向到经典asp页面时是否可以维护url?

Asp.net mvc 从控制器重定向到经典asp页面时是否可以维护url?,asp.net-mvc,redirect,asp-classic,routing,Asp.net Mvc,Redirect,Asp Classic,Routing,在将站点从经典asp迁移到MVC时,我遇到的问题是,还没有实现所有控制器。对于那些没有实现的页面,我希望在维护漂亮的url/product/123的同时提供经典的asp页面(比如/product.asp?id=123)。为了实现这一点,我实现了一个伪ProductController,它将重定向结果返回到经典的asp url。但这会改变浏览器导航栏中的url。要求是,URL应该始终是干净的(mvc),即使页面尚未完全迁移 如果无法使用虚拟控制器完成此操作,那么解决此问题的替代方案是什么 提前谢谢

在将站点从经典asp迁移到MVC时,我遇到的问题是,还没有实现所有控制器。对于那些没有实现的页面,我希望在维护漂亮的url/product/123的同时提供经典的asp页面(比如/product.asp?id=123)。为了实现这一点,我实现了一个伪ProductController,它将重定向结果返回到经典的asp url。但这会改变浏览器导航栏中的url。要求是,URL应该始终是干净的(mvc),即使页面尚未完全迁移

如果无法使用虚拟控制器完成此操作,那么解决此问题的替代方案是什么


提前谢谢

我可以想出两种方法:

  • 在产品控制器中,执行
    product.asp?id=123
    页面,并使用
    返回内容(…)
  • 添加一个虚拟视图产品,然后从那里通过Ajax读取
    product.asp?id=123
    ,并替换HTML
  • 但是这两种方法都很麻烦,如果您需要从页面上发布
    post
    ,它们可能都不起作用

    您还可以使用不会更改浏览器URL的(我从未使用过它,因此不能推荐)

    我的建议是坚持使用旧的URL,只要不将它们迁移到MVC,然后在
    全局中执行从旧URL到新URL的重定向。asax

    可能最简单的解决方案是使用服务器。传输,这与响应不同。重定向将保留请求的URL原样

    我站在更正:这确实是不可能的服务器。传输从一个.aspx页面到一个.asp页面


    但是,可以使用服务器.TransferRequest,但它需要具有集成管道模式的IIS7

    ASP.NET占位符页

    <% Server.TransferRequest("Index.asp", true); %>
    
    <%@ language="vbscript" %>
    <% Response.Write(Request.QueryString("msg")) %>
    
    http://yoursite/Index.aspx?msg=Hello%20World!
    

    谢谢我想,我会尝试实现一个免费的UrlRewriting组件,在你的链接后面的博客帖子中提到。刚才ScottGu发布了一些关于重写的新内容。希望能有帮助。可以使用集成管道模式在IIs7上使用Server.TransferRequest完成。查看我的更新答案。我认为您不能从ASP.net页面
    Server.Transfer
    到ASP classic。也许Server.TransferRequest可能是您的一个选项-查看我的更新答案。