Sitecore在我的MVC解决方案中提供了一个空白页面,其中只包含"默认页面"文本

Mik*_*ark 9 asp.net-mvc sitecore sitecore7 sitecore7.1

当我浏览到我的首页时,例如/ sv我得到一个只显示"默认页面"的空白页面.但是,当我尝试/ sv /它工作.像/ sv/example这样的子页面虽然没有斜线.我正在使用只有MVC视图的Sitecore 7.1.

Mik*_*ark 9

在最后请求没有斜杠的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的支持,我想扩展一个大的"谢谢!" 至.我一直在搜索这个,直到他们帮助我,我认为我想拥有这个文件,并在别人挣扎时很容易找到.提交了一个错误,他们正在努力修复它.


Ruu*_*ier 9

default.aspx从Web根目录中删除该文件.
这将解决您的问题.