带玻璃的Sitecore MVC:处的视图必须派生自WebViewPage或WebViewPage<;TModel>;

带玻璃的Sitecore MVC:处的视图必须派生自WebViewPage或WebViewPage<;TModel>;,sitecore,glass-mapper,sitecore-mvc,sitecore7.1,Sitecore,Glass Mapper,Sitecore Mvc,Sitecore7.1,我遵循Glass教程()让页面编辑器使用Glass和sitecoremvc 我有一个基本的视图呈现,当我有基本的HTML和Sitecore助手方法时,它会显示得很好 <div> @Html.Sitecore().Field("Title") </div> @Html.Sitecore()字段(“标题”) 当我将其转换为GlassView时,我得到以下异常:- “/Views/Layouts/SampleContent.cshtml”处的视图必须派生自WebV

我遵循Glass教程()让页面编辑器使用Glass和sitecoremvc

我有一个基本的视图呈现,当我有基本的HTML和Sitecore助手方法时,它会显示得很好

<div>
    @Html.Sitecore().Field("Title")
</div>

@Html.Sitecore()字段(“标题”)
当我将其转换为GlassView时,我得到以下异常:-

“/Views/Layouts/SampleContent.cshtml”处的视图必须派生自WebViewPage或WebViewPage

以下是我的看法:-

@inherits Glass.Mapper.Sc.Web.Mvc.GlassView<TestMVCContent.Sample_Item>

<div>
    @Editable(x => x.Title)
</div>
@继承Glass.Mapper.Sc.Web.Mvc.GlassView
@可编辑(x=>x.Title)
我正在运行Sitecore 7.1-Update-1,并安装了Glass.Mapper.Sc.Mvc-4和Glass.Mapper.Sc.CastleWindsor Nuget软件包

这是“我的视图”文件夹中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…所以我不知道为什么它不工作。 我是否需要在我的视图中注册一些内容才能使其正常工作


谢谢

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>


您能在视图文件夹中共享web.config部分吗?我现在已经用它更新了帖子。看起来正确,也许您可以创建一个新的MVC 4项目,然后复制“views”web.config以覆盖当前的web.config,您需要添加内部命名空间。