Mik*_*ark 9 asp.net-mvc sitecore sitecore7 sitecore7.1
当我浏览到我的首页时,例如/ sv我得到一个只显示"默认页面"的空白页面.但是,当我尝试/ sv /它工作.像/ sv/example这样的子页面虽然没有斜线.我正在使用只有MVC视图的Sitecore 7.1.
在最后请求没有斜杠的URL时,preprocessRequest管道的"StripLanguage"处理器会重写Route.DefaultPageName设置值的路径(默认情况下为"default.aspx").由于此类页面实际存在于您的站点上,因此ASP.NET MVC路由系统不会处理此类请求,并且会提供文件本身.此行为由RouteCollection.RouteExistingFiles属性控制(默认为false),有关详细信息,请参阅以下文章:http: //msdn.microsoft.com/en-us/library/system.web.routing.routecollection. routeexistingfiles.aspx.在其他情况下,当在语言之后添加斜杠时,这不会发生,因为"StripLanguage"处理器不会重写路径(这也不是预期的行为).因此,请求URL与站点中的"default.aspx"静态文件不匹配,并且ASP.NET MVC正在处理请求.
我建议您将以下设置添加到"Web.config"文件(而不是创建"default.aspx"页面),该页面指向没有扩展名的"默认"页面:
<settings>
<setting name="DefaultAspxPageName" value="default"/>
</settings>
Run Code Online (Sandbox Code Playgroud)
之后,没有".aspx"扩展名的/ default URL将由MVC处理,并且相应的项目将在语言URL部分之后独立于斜杠呈现.在我身边它有效.
我想指出,对此的答案不是我自己的,而是来自Sitecore的支持,我想扩展一个大的"谢谢!" 至.我一直在搜索这个,直到他们帮助我,我认为我想拥有这个文件,并在别人挣扎时很容易找到.提交了一个错误,他们正在努力修复它.