Я получаю эту ошибку в 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>
Originally I thought I'd just need to restart VS, but that didn't work. Does anyone have any suggestions.
ИЗМЕНИТЬ Это стандартная установка 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>
Также при просмотре вывода из визуальной студии появляется дополнительная ошибка, которую я раньше не замечал:
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
Сейчас есть несколько ответов на этот вопрос. Я рекомендую попробовать каждый из них, так как существует множество причин, по которым может возникнуть эта ошибка.