是否可以向Web客户端返回一个名称与从Web服务器文件夹中读取的原始经典asp页面不同的页面?
F.i。我想要实现一个真实的例子:假设我有一个名为
的经典aspcalendar.asp
如果今天(2010年1月6日)调用此页面,则返回客户端网站的页面应为:
calendar-of-january-6-2010.asp
如果明天应该调用同一页面,则返回客户端网站的页面应为:
calendar-of-january-7-2010.asp
你得到了照片。基于一些内部逻辑,将特定的命名经典asp页面返回给Web客户端。
感谢您提供的任何输入。
更新:以上示例中的特定日期文件在物理上不存在(或者我可以使用重定向)。 我希望找到像我用来返回csv文件的东西:
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "attachment; filename=export.csv"
当然不一样,因为这会让客户端看到提示/打开框。只是类似的东西。
答案 0 :(得分:2)
好的,看到你想要链接到每日日历的编辑。
这样想:
StackOverflow就是这样的 - 它使用ASP.NET MVC和ASP.NET路由引擎截取那些看起来很友好的问题URL,在数据库中查找它们,并返回一个生成的页面,以便用户(和搜索)看起来有几千个友好命名的页面,当它实际上都发生在幕后。
答案 1 :(得分:0)
您可以编写自定义ISAPI筛选器(C ++)来控制将哪个物理文件映射到URL。您需要管理员访问IIS框以安装此过滤器,如果您确实希望自定义URL具有.asp扩展名,则过滤器需要适应此目的(因为ISAPI过滤器主要是基于IIS的扩展选择的) 。查看this和this MSDN链接。 This codeproject sample包含更多指针(它将.chm重新映射为.asp文件,易于遵循)。
答案 2 :(得分:0)
您只需从calendar.asp重定向到新页面即可。当用户请求此新页面使用URL重写以在内部重写回calendar.asp时。
不太好 - 在第一次请求calendar.asp生成实际页面(带日期的页面)时(不要忘记在24小时内删除它)并重定向到此页面。