随.NET Framework 4.5添加了RouteCollection的新属性:
http://msdn.microsoft.com/en-us/library/system.web.routing.routecollection.lowercaseurls.aspx
这很有效,直到您为项目添加区域。所有网址都是适当的。
为什么会这样?重现起来很简单:
在AreaRegistration.RegisterArea中执行context.MapRoute时,它会中断。当我发表评论时,我得到了小写的Urls。取消注释,Urls又回来了。
在我看来,微软知道这是错误的,并没有宣传这个新功能,因为它是一个非常好的功能,但它只在MSDN文档中提到。
答案 0 :(得分:12)
这确实是ASP.NET MVC和ASP.NET 4.5在路由中新的LowercaseUrls功能之间的交互中的一个错误。
我在此处记录了MVC的错误:http://aspnetwebstack.codeplex.com/workitem/685
感谢您报告此事!
正如Cristi Pufu所提到的,似乎其他人已经编写了一些NuGet包来处理类似的情况:
编辑 2013年4月23日 - 我们最近接受了一个拉取请求,修复了ASP.NET MVC 5的此问题。