升级到11

时间:2018-01-15 23:43:24

标签: url-routing wildcard kentico

前言

此问题可能对Stack Overflow而言过于具体。 我也在Kentico论坛上发布了它:https://devnet.kentico.com/questions/problems-with-kentico-and-wildcard-urls-after-upgrade-to-11

梗概:

升级到Kentico 11之后,我不再使用通配符设置了。经过大量的挖掘和研究,我认为问题出现在Kentico用于将通配符值映射到URL参数的机制中......但我不知道如何调查该过程以试图找出它出错的地方和/或如何解决它。

详细信息:

我的页面设置如下&#34;标准网址或通配符&#34;价值集: /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对象中提取。

似乎某些机制在价值映射方面出现了问题......但正如Kentico内置的内容一样,我不清楚如何更深入地了解它的位置它失败了。

我尝试过的其他事情:

  • 重新签名所有宏。这解决了升级后我遇到的另一个问题,但没有帮助解决这个问题。
  • 在页面上&gt;网址标签:从Standard URL or wildcard更改为Route 在某个论坛帖子中找到了这个建议;这样做是为了让我再次正确地在控件中点击断点,但是Request对象中没有任何通配符值可用。不好。
  • &#39;保存&#39;在页面选项卡,URL选项卡,以及其他地方,以防万一有一些损坏,重新保存会以某种方式重置。在黑暗中完全拍摄,但在极少数情况下这已经奏效。这里没有帮助。

2 个答案:

答案 0 :(得分:1)

我能够重现这一点,似乎找到了解决方法。

如果我在网页的网址路径中使用通配符路径,则会收到您的错误消息。 但是,如果我使用通配符路径作为页面别名,我可以获取所有通配符参数。 https://www.screencast.com/t/jj2DesUrsGLR

最佳, 马特

答案 1 :(得分:0)

事实证明,这实际上是Kentico 11.0.0中的一个错误。 我最后联系了Kentico支持,他们对它进行了修改。

该错误由Kentico 11.0.7修补程序解决。