我正在使用ASP .NET MVC Beta,当我使用此URL末尾带有“点”的URL时,出现HTTP 404(找不到资源)错误:http:// localhost:81 / Title / Edit / Code1。如果删除末尾的点或中间的某点,则不会出现错误。我尝试调试,但是在MvcHandler中的ProcessRequest之前,我从“ System.Web.CachedPathData.GetConfigPathData(String configPath)”中收到错误。网址末尾是否不允许使用“点”?还是有办法修复路由定义以处理此URL?例如:我有一个名为Detail1 [Id(integer),Code(string),Description(string)]的表,该表通过其ID列与Master1具有FK关系。每当我选择Master1的记录时,我也会选择它的Detail1记录以获取它的Code字段。为了不每次都进行此联接(因为通常不仅只有一个细节,而且有多个细节),所以我选择不使用Id列,而是制作Detail1的代码PK。但是,当我摆脱Id并将Code用作PK时,我的路线也开始与Code字段一起使用,例如:Detail1 \ Edit \ Code1该代码中可以包含任何内容,也可以包含DOT。在某些情况下,我可以在最后禁止DOT,但有时确实很有意义。而且我还看过这篇文章,路线可能非常灵活,所以我认为我的想法并不奇怪。所以这就是为什么我做一些非标准的事情。有什么建议么?还有为什么在网址末尾有DOT太奇怪了?
3 回答
森林海
TA贡献2011条经验 获得超2个赞
如果使用的是.NET 4.0,则可以在web.config的system.web部分中设置此标志,并且将允许该标志:
<httpRuntime relaxedUrlToFileSystemMapping="true" />
我已经对其进行了测试,并且可以正常工作。Haack对此有一个解释。
米脂
TA贡献1836条经验 获得超3个赞
好吧,在.NET 4.5中,我通过在网址末尾添加“ /”来解决此问题。
因此,在您的情况下,它将是“ http:// localhost:81 / Title / Edit / Code1。/”。这是我所做的唯一一件事,无需添加httpRuntime设置。
- 3 回答
- 0 关注
- 513 浏览
添加回答
举报
0/150
提交
取消