Asp.net mvc 从控制器重定向到经典asp页面时是否可以维护url?
在将站点从经典asp迁移到MVC时,我遇到的问题是,还没有实现所有控制器。对于那些没有实现的页面,我希望在维护漂亮的url/product/123的同时提供经典的asp页面(比如/product.asp?id=123)。为了实现这一点,我实现了一个伪ProductController,它将重定向结果返回到经典的asp url。但这会改变浏览器导航栏中的url。要求是,URL应该始终是干净的(mvc),即使页面尚未完全迁移 如果无法使用虚拟控制器完成此操作,那么解决此问题的替代方案是什么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),即使页面尚未完全迁移 如果无法使用虚拟控制器完成此操作,那么解决此问题的替代方案是什么 提前谢谢
提前谢谢 我可以想出两种方法:
product.asp?id=123
页面,并使用返回内容(…)
product.asp?id=123
,并替换HTMLpost
,它们可能都不起作用
您还可以使用不会更改浏览器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可能是您的一个选项-查看我的更新答案。