我遵循了Glass教程(http://glass.lu/docs/tutorial/sitecore/tutorial14/tutorial14.html),让Page Editor与Glass和Sitecore MVC合作。
我有一个基本的View Rendering,当我有基本的HTML和Sitecore Helper方法时,它显示正常。
<div>
@Html.Sitecore().Field("Title")
</div>
当我将其转换为GlassView时,我得到以下异常: -
'/Views/Layouts/SampleContent.cshtml'中的视图必须来自WebViewPage或WebViewPage。
这是我的观点: -
@inherits Glass.Mapper.Sc.Web.Mvc.GlassView<TestMVCContent.Sample_Item>
<div>
@Editable(x => x.Title)
</div>
我正在运行Sitecore 7.1 - Update-1,并安装了Glass.Mapper.Sc.Mvc-4和Glass.Mapper.Sc.CastleWindsor Nuget软件包。
以下是我的Views文件夹中的web.config的一部分。
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="Sitecore.Mvc" />
<add namespace="Sitecore.Mvc.Presentation" />
</namespaces>
</pages>
</system.web.webPages.razor>
我可以看到GlassView继承自WebViewPage ....所以我不知道为什么它不起作用。 我需要在我的视图中注册以使其正常工作吗?
感谢。
答案 0 :(得分:2)
Glass.Mapper.Sc.Mvc DLL的发行版本3.2.0.35是针对旧版本的System.Web.Mvc和System.Web.WebPages DLL构建的。
这已在最新版本的DLL 3.2.0.41中修复。
对于旧版本,可以通过添加一些程序集绑定重定向来修复此问题:
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>