此问题可能对Stack Overflow而言过于具体。 我也在Kentico论坛上发布了它:https://devnet.kentico.com/questions/problems-with-kentico-and-wildcard-urls-after-upgrade-to-11
升级到Kentico 11之后,我不再使用通配符设置了。经过大量的挖掘和研究,我认为问题出现在Kentico用于将通配符值映射到URL参数的机制中......但我不知道如何调查该过程以试图找出它出错的地方和/或如何解决它。
我的页面设置如下"标准网址或通配符"价值集:
/Invest/Communities/{ProvinceName}/{EconomicRegionName}/{RegionalDistrictName}/{CommunityName}
此页面还有一个/Invest/Communities/Province
别名,但我不确定是否会为我做任何事情。
页面本身包含一个自定义控件,其用户控件虚拟路径为~/<project>/WebControls/Communities/Community.ascx
在升级之前,此URL:/Invest/communities/myProvince/myEconomic/myRegional/myCommunity/
工作正常 - 如果我在Community.ascx.cs
Page_Load {}
方法的开头设置断点,断点就会受到影响,我可以从查询字符串中提取这四个值(通过例如HttpContext.Current.Request["ProvinceName"]
)。
升级后,相同的URL没有到达断点,而是指示我发出404错误。但是,如果我手动将URL重新写入/invest/communities/profile/?ProvinceName=myProvince&EconomicRegionName=myEconomic&RegionalDistrictName=myRegional&CommunityName=myCommunity
,则页面按预期工作。断点命中,值可以从Request
对象中提取。
Standard URL or wildcard
更改为Route
在某个论坛帖子中找到了这个建议;这样做是为了让我再次正确地在控件中点击断点,但是Request
对象中没有任何通配符值可用。不好。答案 0 :(得分:1)
我能够重现这一点,似乎找到了解决方法。
如果我在网页的网址路径中使用通配符路径,则会收到您的错误消息。 但是,如果我使用通配符路径作为页面别名,我可以获取所有通配符参数。 https://www.screencast.com/t/jj2DesUrsGLR
最佳, 马特
答案 1 :(得分:0)
事实证明,这实际上是Kentico 11.0.0中的一个错误。 我最后联系了Kentico支持,他们对它进行了修改。
该错误由Kentico 11.0.7修补程序解决。