Метод расширения, который точно соответствует требуемым аргументам, имеет некоторые недопустимые аргументы.

Недавно я начал работу над приложением MVC 5 и столкнулся с проблемой IntelliSense в представлениях Razor. Я думаю, что это изображение довольно хорошо суммирует проблему (извините за крошечный размер, пожалуйста, щелкните правой кнопкой мыши и откройте в новой вкладке или прочитайте расшифровку ниже):

введите здесь описание изображения

Для тех из вас, кто не может ясно видеть это, мой вызов Html.ActionLink("Create new", "Create") приводит к тому, что IDE жалуется на следующее:

'System.Web.WebPages.Html.HtmlHelper' не содержит определения для ActionLink, а лучшая перегрузка метода расширения 'System.Web.Mvc.Html.LinkExtensions.ActionLink(System.Web.Mvc.HtmlHelper, string, string)' имеет несколько недопустимых аргументов.

Но ясно, что если я передам две строки методу расширения System.Web.Mvc.HtmlHelper, это точно соответствует требуемой подписи {{extensionmethod}}(System.Web.Mvc.HtmlHelper, string, string)'. В чем проблема?

Как ни странно, это влияет только на Intellisense; представление компилируется и работает нормально. Я нашел несколько ссылок, которые предположим, что Visual Studio 2012 (которую я использую) имеет проблемы с Razor 3 intellisense. Принятое решение — установить Web Tools 2013, что я уже сделал. Перезапуск IDE не показал разницы.


person Asad Saeeduddin    schedule 01.04.2014    source источник