当我使用时,我在 Visual Studio 中收到此错误@Html.Sitecore
:
“System.Web.Webpages.Html.Htmlhelper”不包含“Sitecore”的定义,并且最佳扩展方法重载“Sitecore.Mvc.HtmlHelperExtensions.Sitecore(System.Web.Mvc.HtmlHelper)”有一些无效参数。
但是,一旦部署,它就可以毫无问题地运行。
我将 Sitecore 7.2 与 MVC 5.1 一起使用。
我读过的文章处理类似的错误消息,谈论文件夹文件的system.web.webPages.razor
部分。这就是它在我的解决方案中的显示方式。Views
web.config
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.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" />
</namespaces>
</pages>
最初我以为我只需要重新启动VS,但这不起作用。有没有人有什么建议。
编辑 这是标准的 Sitecore 7.2 安装,因此具有以下绑定重定向:
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" xmlns="urn:schemas-microsoft-com:asm.v1"/>
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.1.0.0" xmlns="urn:schemas-microsoft-com:asm.v1"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" xmlns="urn:schemas-microsoft-com:asm.v1"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" xmlns="urn:schemas-microsoft-com:asm.v1"/>
</dependentAssembly>
此外,在查看 Visual Studio 的输出时,还有一个我之前没有发现的额外错误:
Instance argument: cannot convert from 'System.Web.WebPages.Html.HtmlHelper' to 'System.Web.Mvc.HtmlHelper'
编辑 2
我不再认为这是 Sitecore MVC 问题。我收到类似的错误@Html.ActionLink("xxx", "xxx")
。其他人在 VS2012 中看到了这个问题,但我使用的是 2013。
编辑 3
这个问题现在有很多答案。我建议尝试它们中的每一个,因为似乎有很多原因可能会发生此错误。