Я получаю эту ошибку в 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
файла web.config
папке Views
. Так оно и появляется в моем решении.
<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, но это не сработало. У кого-нибудь есть предложения.
EDIT Это стандартная установка 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'
EDIT 2
Я больше не думаю, что это проблема Sitecore MVC. Я получаю аналогичную ошибку с @Html.ActionLink("xxx", "xxx")
. Другие люди видели эту проблему в VS2012, но я использую 2013.
ИЗМЕНИТЬ 3
На этот вопрос есть довольно много ответов. Я рекомендую попробовать каждый из них, поскольку кажется, что существует множество причин возникновения этой ошибки.