我刚刚将ASP.NET应用程序从.NET 3.5升级到4.0,并且在通过http://mysite.com/请求默认文档default.aspx时发现Request.RawURL设置为“/”。在.NET 3.5中,Request.RawURL将设置为“/default.aspx”。
有没有办法在4.0中启用此.NET 3.5行为?
我尝试通过注册表禁用无扩展名网址。我还浏览了ASP.NET 4.0 Breaking Changes doc并设置了表单标记操作属性,但是查看页面源代码显示为action属性设置的值没有被拾取并且还原为“/”。
目前在IIS 7.5集成模式和Win7上运行。
答案 0 :(得分:1)
实际上,我可以在.NET 2.0和.NET 4.0之间切换时重现行为 - .NET 2.0& 3.5两者共享相同的公共语言运行时CLR2,并为更高版本的.NET添加了基类库(BCL)。随着.NET 4.0出现CLR4,这似乎是差异发生的地方。我之前从未注意到这一点!
我认为新行为是正确的,因为RawUrl
反映了实际请求的网址路径。很难理解您的确切需求,但我认为您可能会尝试使用Request.Path
。
URL: http://example.com/
Request.RawUrl: /
Request.Path: /default.aspx
也许您可以在应用程序上详细说明一下?