首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Area时.NET 4.5 MVC RouteCollection.LowercaseUrls中断

使用Area时.NET 4.5 MVC RouteCollection.LowercaseUrls中断
EN

Stack Overflow用户
提问于 2012-11-07 21:45:01
回答 1查看 2.4K关注 0票数 17

.NET Framework4.5向RouteCollection添加了一个新属性:

http://msdn.microsoft.com/en-us/library/system.web.routing.routecollection.lowercaseurls.aspx

这非常有效,直到您向项目中添加了一个区域。所有的Urls都是大小写的。

你知道为什么会发生这种情况吗?它很容易重现:

  1. 创建新的MVC4互联网应用程序(.NET 4.5)
  2. 使用以下参数启动RouteConfig.RegisterRoutes函数: routes.LowercaseUrls =true;
  3. 运行项目,您将看到所有生成的Urls现在都是小写的。
  4. 向项目添加一个区域。
  5. 再次运行项目,您将再次看到所有Urls都是正确的!

它在AreaRegistration.RegisterArea中执行context.MapRoute时中断。当我注释掉它时,我得到了小写的Urls。取消对它的注释,则会返回相应的Urls。

在我看来,微软似乎知道这是一个错误,并没有宣传这一新功能,因为它是一个非常棒的功能,但它只在MSDN文档中提到。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-07 07:22:06

这似乎确实是ASP.NET MVC和ASP.NET 4.5的路由中新的LowercaseUrls特性之间交互的一个bug。

我在这里记录了一个MVC的bug:http://aspnetwebstack.codeplex.com/workitem/685

感谢您的报道!

正如Cristi Pufu提到的,似乎其他人已经编写了一些NuGet包来处理类似的场景:

EDIT 2013年4月23日-我们最近接受了一个拉入请求,并修复了ASP.NET MVC5的此问题。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13271048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档