1

我按照 Glass 教程 ( http://glass.lu/docs/tutorial/sitecore/tutorial14/tutorial14.html ) 让页面编辑器与 Glass 和 Sitecore MVC 一起工作。

我有一个基本的视图渲染,当我有基本的 HTML 和 Sitecore 辅助方法时,它显示得很好。

<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....所以我不知道为什么它不起作用。我需要在我的视图中注册一些东西才能让它工作吗?

谢谢。

4

1 回答 1

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>
于 2014-07-19T13:24:42.293 回答